2016-07-12 259 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