我有这个
ng-repeat="directive in vm.directives">
该循环正确显示我的所有数据
在那个循环中,我可以做到这一点
{{vm.question.directiveassoc[0].SortOrder}}
这行得通
但是当我尝试做
{{vm.question.directiveassoc[directive.Id].SortOrder}} that does not work
更重要的是,我希望我的ng模型显示对象中的数据
ng-model="vm.question.directiveassoc[directive.Id].SortOrder"
为什么这不起作用,它不应该显示来自我的对象的数据吗?
{
"Id": 105,
"Name": "yyyyyyyyyyyyy",
"Description": "yyyyyyyyyyyyyy",
"Active": true,
"$$hashKey": "object:98",
"directiveassoc": [
{
"Id": 96,
"QuestionId": 105,
"DirectiveId": 1,
"SortOrder": 99,
"data": "yyyyyy"
}
]
}
更新
好的,这行得通
ng-model="vm.question.directiveassoc[directive.Id -1].SortOrder"
问题是遍历 vm.directives 是一个以 1 开头的对象列表,因为它们的顺序是 1 到多,并且因为我的另一个 vm.question.directiveassoc 对象包含相同的指令 id,以及排序顺序。 如果 i -1 有效
所以既然对象以0开头,我就减去
这感觉很恶心/笨拙
使用不同的对象真正执行此循环的更好方法是什么?
看起来您的指令的Id
为 1,而不是 0。
我建议您在控制器上创建一个方法来获取给定指令 id 的排序顺序,然后执行正确的数组搜索以在具有正确DirectiveId
的directiveassoc
数组中找到条目。
如果使用 Lodash 或 Underscore,_.find()
方法应该是你需要的,否则编写你自己的方法。