ngRepeat-ed 指令表示外部模型的字段

ngRepeat-ed directives representing fields of external model

本文关键字:模型 字段 外部 表示 指令 指令表 ngRepeat-ed      更新时间:2023-09-26

让我obj成为我$scope中的一个对象,该对象最初具有空的parts数组属性。我定义了一个 scope 函数来在 parts 数组中添加空对象,并且有一个 ng-repeat ing 指令(在 parts 数组上(,该指令又在描述单个part实例的fields上包含另一个ng-repeat指令(为简单起见,只考虑两个属性,iddescription, 但在我的实际场景中,还有更多(。根据fieldtype属性,它要么被渲染为<select>,要么被渲染为<input>标签。理想情况下,<select>应该从可能的部分列表中获取,并将所选部分(包括其iddescription字段(绑定到obj.parts中的当前part,而description字段应提供用户可以进一步修改的默认描述。但我无法让它工作。我记下了这个jsFiddle,以更好地说明我的问题。

如果我单击"添加部分"并从<select>中选择"foo",我希望:

  1. $scope.obj.parts数组中第一个(也是唯一一个(元素更改为 {"id":"foo","description":"Foo description"} ;
  2. <select>旁边的<input>字段以相应地显示说明;
  3. 数组元素的 description 属性要更改 如果我编辑<input>.

注意:如果我将(jsFiddle 的第 9 行(绑定从 ng-model="part" 更改为 ng-model="obj.parts[$index]" ,则上一个列表的第 1. 点有效,但仅在数组的第一个元素上有效(即:如果我添加更多部分,它们都引用$scope.obj.parts[0](和问题2.3.仍然存在(实际上,所有<input>都是指$scope.obj.parts[1].description, 出于某种原因(。

请帮忙,我已经结束了。干杯。

让它在

obj.parts数组和最外层的 $index 属性上使用$parent范围标识符工作。 js小提琴在这里。