代表外部模型字段的 ngRepeat-ed 指令
ngRepeat-ed directives representing fields of external model
让 obj
成为我的 $scope
中的一个对象,该对象最初为空 parts
数组 属性。
我定义了一个范围函数来在 parts
数组中添加空对象,并且有一个 ng-repeat
ing 指令(在 parts
数组上),它又包含另一个 ng-repeat
ing 指令在描述单个 part
实例的 fields
上(为简单起见,只考虑了两个属性,id
和 description
,但在我的实际场景中还有更多) .
根据 field
的 type
属性,它被呈现为 <select>
或 <input>
标签。理想情况下,<select>
应该从可能的部分列表中获取,并将所选部分(其 id
和 description
字段)绑定到 [=29 中的当前 part
=],而 description
字段应该提供用户可以进一步修改的默认描述。但我无法让它工作。我记下了 this jsFiddle 以更好地说明我的问题。
如果我单击 "Add part" 并从 <select>
中选择 "foo",我预计:
$scope.obj.parts
数组中第一个(也是唯一一个)元素更改为 {"id":"foo","description":"Foo description"}
;
-
<select>
旁边的 <input>
字段相应地显示说明;
- 数组元素的
description
属性要改变如果我编辑<input>
.
注意:如果我将绑定从 ng-model="part"
更改(jsFiddle 的第 9 行)到 ng-model="obj.parts[$index]"
,则点 1.
之前的列表有效,但仅在数组的第一个元素上有效(即:如果我添加更多部分,它们都引用 $scope.obj.parts[0]
)并且问题 2.
和 3.
仍然存在(实际上,所有 <input>
s 指的是 $scope.obj.parts[1].description
,出于某种原因)。
请帮忙,我无计可施了。干杯。
在 obj.parts
数组和最外面的 $index
属性 上使用 $parent
范围标识符使其工作。 jsFiddle here.
让 obj
成为我的 $scope
中的一个对象,该对象最初为空 parts
数组 属性。
我定义了一个范围函数来在 parts
数组中添加空对象,并且有一个 ng-repeat
ing 指令(在 parts
数组上),它又包含另一个 ng-repeat
ing 指令在描述单个 part
实例的 fields
上(为简单起见,只考虑了两个属性,id
和 description
,但在我的实际场景中还有更多) .
根据 field
的 type
属性,它被呈现为 <select>
或 <input>
标签。理想情况下,<select>
应该从可能的部分列表中获取,并将所选部分(其 id
和 description
字段)绑定到 [=29 中的当前 part
=],而 description
字段应该提供用户可以进一步修改的默认描述。但我无法让它工作。我记下了 this jsFiddle 以更好地说明我的问题。
如果我单击 "Add part" 并从 <select>
中选择 "foo",我预计:
$scope.obj.parts
数组中第一个(也是唯一一个)元素更改为{"id":"foo","description":"Foo description"}
;-
<select>
旁边的<input>
字段相应地显示说明; - 数组元素的
description
属性要改变如果我编辑<input>
.
注意:如果我将绑定从 ng-model="part"
更改(jsFiddle 的第 9 行)到 ng-model="obj.parts[$index]"
,则点 1.
之前的列表有效,但仅在数组的第一个元素上有效(即:如果我添加更多部分,它们都引用 $scope.obj.parts[0]
)并且问题 2.
和 3.
仍然存在(实际上,所有 <input>
s 指的是 $scope.obj.parts[1].description
,出于某种原因)。
请帮忙,我无计可施了。干杯。
在 obj.parts
数组和最外面的 $index
属性 上使用 $parent
范围标识符使其工作。 jsFiddle here.