2017-10-12 132 views
0

我正在嘗試做一個嵌套的dom-repeat,我沒有任何錯誤,但仍然有空的顯示。檢查元素,我可以看到數據實際上在那裏,並且頁面在空白之前顯示很短的時間。下面的代碼摘錄:nested dom-repeat什麼也沒有顯示

 <iron-ajax auto url="http://localhost:8808/datal2" handle-as="json" last-response="{{top}}"></iron-ajax> 

    <template is="dom-repeat" items="{{top.top}}" as="item"> 
     <div> 
     <span id="l4-support-offering-[[index]]">{{item.l2}}</span> 
     </div> 


     <iron-ajax auto url="[[computeCompleteUrl(item.l2)]]" handle-as="json" last-response="{{top}}"></iron-ajax> 

     <template is="dom-repeat" items="{{top.top}}" as="level24" index-as="indexl24"> 
      <div> 
      <span id="l4-support-offering-l4[[indexl24]]">{{level24.l4}}</span> 
      </div> 
     </template> 
    </template> 

    <script> 

    ........ 
     properties: { 
    top: { 
     type: Array, 
     value: function() { return []; } 
    }, 
    level24: { 
     type: Array, 
     value: function() { return []; } 
    }, 
    ................ 

聚合物爲v 1.8.0

我改變了代碼:

<p> 
    Hello! 
</p> 
<iron-ajax auto url="http://localhost:8808/datal2" handle-as="json" last-response="{{lev2}}"></iron-ajax> 


    <template is="dom-repeat" items="{{lev2.top}}" as="iteml2"> 
     <span id="l4-support-offering-[[index]]">{{iteml2.l2}}</span><br> 

    <iron-ajax auto url="[[computeCompleteUrl(iteml2.l2)]]" handle-as="json" last-response="{{lev4}}"></iron-ajax> 
      <template is="dom-repeat" items="{{lev4.l4byl2}}" as="level4" index-as="indexl24"> 
       <span id="l4-support-offering-l4[[indexl24]]">{{level4.l4}}</span> 

      </template><br> 


</template> 
<script> 
Polymer({ 
    is: 'game', 

    properties: { 
    lev2: { 
     type: Array, 
     value: function() { return []; } 
    }, 
    lev4: { 
     type: Array, 
     value: function() { return []; } 
    } 
    }, 

    computeCompleteUrl: function(level) { 
    return 'http://localhost:8808/datal4byl2/' + level; 
    console.log("manager is:" +level); 
    }, 

現在我已經顯示的東西,但它是不正確。我有一些像

X 1,2,3,4 Ÿ 1,2,3,4 ž 1,2,3,4

,而應該是(這只是一個例如)

X 8,2,4 ý 6,8,5,2 ž 1,2,3,4-

所以它總是填充的最後一個元素的從數據第一個列表。

回答

0

您正在參考top.top但該變量不存在。你的top屬性是Array的類型,所以你不能這樣做top.top。首先,你必須遍歷throught top屬性,然後在嵌套dom-repeat - item.top(也許你只是錯誤地複製你的代碼)

+0

我改變了代碼,所以也許現在更清晰一點。現在我在屏幕上獲取數據,但是對於第一個循環中的每個元素,我有相同的第二個元素(對應於第一個循環的最後一個元素)。所以它是這樣的:X(1,2,3,4),Y(1,2,3,4),Z(1,2,3,4),而它應該是X(1,3,4), Y(6,8,5,2),Z(9)。 – vlucian

+0

請查看我的更改。 – vlucian

+0

@vlucian,但仍然是一樣..你正在重新考慮'lev2.top',但'lev2'是數組。所以javascript怎麼才能訪問'lev2.top'就是廢話。另外,如果你添加了這些數組及其結構的例子將會很好。否則當你的示例代碼 –

0

在它的工作後,我改變了第二DOM重複到最後:

<template is="dom-repeat" items="{{getLevelFours(item.l2)}}" as="level24" index-as="indexl24"> 

和使用的功能:

computeCompleteUrl: function(level) { 
    return 'http://localhost:8808/datal4byl2/' + level; 
    }, 
getLevelFours: function(level) { 
    let theUrl = this.computeCompleteUrl(level); 
    // http request based on url 
    var xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("GET", theUrl, false); // false for synchronous request 
    xmlHttp.send(null); 
    var myjson = JSON.parse(xmlHttp.responseText) 
    return myjson.l4byl2; 
相關問題