给定一个包含 JavaScript 对象数组的数据结构,我如何使用 Angular 将该数组中的特定条目绑定(bind)到输入字段?
数据结构如下:
$scope.data = {
name: 'Foo Bar',
fields: [
{field: "F1", value: "1F"},
{field: "F2", value: "2F"},
{field: "F3", value: "3F"}
]
};
fields
数组包含给定结构的多个实例,每个条目都有一个 field
属性和一个 value
属性。
如何使用 field
F1
将 input
控件绑定(bind)到数组条目的 value
字段属性>?
<input ng-model="???"/>
我知道我可以使用 ng-repeat
绑定(bind)所有字段,但这不是我想要的。上面的数据只是一个更大的字段列表中的示例,我只想将预定义的字段子集绑定(bind)到屏幕上的控件。该子集不基于数组条目中的属性,而是在页面设计时已知。
因此对于上面的示例,我会尝试将 F1 绑定(bind)到页面上的一个输入,将 F2 绑定(bind)到另一个输入。 F3 不会绑定(bind)到控件。
我见过在 ng-model
中使用函数的示例,但它似乎不适用于 Angular 1.1.0。
是否有另一种巧妙的方法将输入字段绑定(bind)到特定的数组条目?
这是一个有示例的 fiddle ,但不起作用,因为它试图在 ng-model
属性中使用函数:http://jsfiddle.net/nwinkler/cbnAU/4/
更新
根据下面的建议,它应该是这样的:http://jsfiddle.net/nwinkler/cbnAU/7/
最佳答案
我个人会重新组织数组,使数组条目的 field 属性成为对象的标识符。 Mhhh 这句话可能听起来很奇怪。我的意思是:
$scope.data = {
name: 'F1',
fields: {
F1: {
value: "1F"
},
F2: {
value: "2F"
}
}
};
如果你想动态绑定(bind)一个值,这是实现它的一种简单快捷的方法。 这是你的 fiddle 修改后的文字。 http://jsfiddle.net/RZFm6/
希望对你有帮助
关于javascript - 数据绑定(bind)到 Angular 中数组的特定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13880521/