Javascript angularjs ng repeat未在ng模型中显示我的数据

Javascript angularjs ng repeat未在ng模型中显示我的数据,javascript,angularjs,json,angularjs-ng-repeat,angularjs-ng-options,Javascript,Angularjs,Json,Angularjs Ng Repeat,Angularjs Ng Options,我有这个 ng-repeat="directive in vm.directives"> 在该循环中正确显示我的所有数据 在这个循环中,我可以做到这一点 {{vm.question.directiveassoc[0].SortOrder}} 这就行了 但是当我试着去做的时候 {{vm.question.directiveassoc[directive.Id].SortOrder}} that does not work 更重要的是,我希望ng模型显示对象中的数据 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以及sortorder。。如果i-1就行了

既然对象以0开头,我就减去

但这感觉很恶心


使用不同对象执行此循环的更好方法是什么?

看起来您的指令的
Id
为1,而不是0

我建议您在控制器上创建一个方法,以获取给定指令id的排序顺序,然后执行适当的数组搜索,以在
directiveassoc
数组中找到具有正确
DirectiveId
的条目


如果使用Lodash或下划线,则
..find()
方法应该是您需要的,否则编写自己的。

在ng repeat块内输出单个指令
{{directive}}
查看渲染的内容。要知道,每个ng重复都有自己的独立作用域,您正试图继承,这导致了数据不可用的问题。我更新了此问题@Rikin@Rikin{{directive}-->{“Id”:1,“Name”:“YesNo”,“Tag”:“,”Description:”显示与问题“}相关的两个是非按钮您可以使用当前循环的索引
$index
。基于零。我建议在标记中使用较少的逻辑,并在脚本中使用。这将减少你的处理时间。嘿,所以我更新了我的问题-是的,你是对的。所以我在数据库上做这个循环,从一个包含多个列的表中检索指令列表,我需要循环这些列,并有一个管理员想要选择的指令的复选框,以及sortorder,因此如果他们选择第一个指令(id=1)实际上,我的另一个directiveassoc对象具有choosen指令,因此id=1的第一个指令,在同一行上的directiveassoc排序器中,它以0开头,因此这就是我所做的