javascript - 数据绑定(bind)到 Angular 中数组的特定项

标签 javascript arrays angularjs

给定一个包含 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 F1input 控件绑定(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/

相关文章:

javascript - Internet Explorer 跳动滚动

c# - 如何使用字符串数组来处理 C# 中 switch 语句中的大小写?

javascript - Angular 在 IE8 上,选择元素中的显示数据无法正常工作

javascript - 仅当选中时才将复选框的值传递给变量

php - 将 php 变量传递给 jQuery flot 饼图

javascript - 尝试从工厂中的 ref.on() 返回值到 Controller

javascript - 使用自定义图标的 Angular 谷歌地图

javascript - 如何比较两个二维数组并按特定顺序返回结果(Google Apps 脚本)?

javascript - Knockout.js 数据绑定(bind)数组到复选框列表

javascript - 没有网络服务器的 Angular 路由来加载模板