2016-07-12 518 views
0

名單我在我的模型中的對象被定義爲下面NG-重複嵌套和KeyValuePair

List<KeyValuePair<DTO_AWTR, string>> AWTR_DRAWING 

DTO_AWTR一個屬性是這樣定義的其它目的:

public partial class DTO_AWTR 
{ 
    public string ITEM_NUMBER { get; set; } 
    public string PLANT { get; set; } 
    public string PLANT_EMAIL { get; set; } 
} 

我認爲我想迭代拋出列表中的所有元素,但有一些錯誤。我看到了行數,但空字段。

<table> 
    <tr ng-repeat="draw in dataItem.AWTR_DRAWING"> 
     <td ng-repeat="(key, value2) in draw"></td> 
     <td>{{ key.PLANT }}</td>    
    </tr> 
</table> 

你對這個問題有什麼建議嗎?

回答

1

你在這裏List<KeyValuePair<DTO_AWTR, string>> AWTR_DRAWING提到的結構序列化爲

[{key : {ITEM_NUMBER : "", PLANT : "", PLANT_EMAIL:""}, value : ""}, ...] 

所以你應該使用NG-重複保持這種結構的初衷。

<table> 
    <tr ng-repeat="draw in dataItem.AWTR_DRAWING"> 
     <!--this will contain {key : {object structure}, value : ""} --> 
     <td ng-repeat="(key, value2) in draw.key" ng-bind="key"></td> 
     <!--this will contains key = "ITEM_NUMBER|PLANT|PLANT_EMAIL"-->    
    </tr> 
</table> 

**注 - 取決於js序列化程序,您可能正在使用最有可能的newtonsoft json。對象鍵可能駝峯格式

+0

所以最好叫般地情況下記號的對象鍵?但也是DTO_AWTR的屬性? – Galma88

+0

看來,這是第二次迭代不起作用。 如果我在第一次迭代後添加一行,我可以看到我的對象 '​​{{draw}}' – Galma88

+0

我編輯了我的答案。之前曾嘗試將{{key}}放在單獨的td元素上,該元素顯然是錯的 –

0

試試這個:

<table> 
    <tr ng-repeat="draw in dataItem.AWTR_DRAWING"> 
     <td>{{ draw.key.PLANT }}</td>    
    </tr> 
</table> 
+0

這不起作用 – Galma88

+0

我不明白你爲什麼有2個重複元素..你有一個單獨的列表。您可以使用第一個ng-repeat在該列表中進行導航。所以你的繪圖對象包含一個KeyValuePair對象..你需要從那裏的Key屬性(我不確定K是否大寫)。 Key屬性包含一個DTO_AWTR對象。從這個對象你需要PLANT屬性。所以我認爲應該draw.key.PLANT。如果您嘗試顯示draw.Key屬性會顯示什麼內容? – marius