AngularJS ng-repeat没有在ng-model中显示我的数据



我有这个

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 的排序顺序,然后执行正确的数组搜索以在具有正确DirectiveIddirectiveassoc数组中找到条目。

如果使用 Lodash 或 Underscore,_.find()方法应该是你需要的,否则编写你自己的方法。

最新更新