AngularJS -- 将ngModel绑定到存储在属性中的对象
AngularJS -- Bind ngModel to an object stored in a property
我正在尝试以编程方式填充输入列表。
我有类似的东西
<div ng-repeat="field in fields">
<input ng-model="field.Binding" />
</div>
var Query = {
Keywords: "Foo",
Title: "Bar"
}
var Fields = [{
Name: "Keywords",
Binding: Query.Keywords
}, {
Name: "Title",
Binding: Query.Title
}];
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.fields = Fields;
$scope.query = Query;
}
非工作小提琴@http://jsfiddle.net/VSph2/52/当我启动视图时,字符串被复制,但这两个值不会相互更新。
基本上,我想绑定到通过引用或名称指定的对象,例如"Query.Keywords",并让范围在运行时对此进行评估 - 但我运气不佳。
正如你在小提琴中看到的,我的价值观不会保持同步。
感谢扎克引导我走向正确的方向。
无论如何,如果您使用字符串值进行绑定,例如
字段 { 绑定:"foo"}
然后,您可以绑定到 data[Field.Binding],这将正常工作。我的第一个示例不起作用,因为它绑定到字符串值,而不是数据的属性本身。
工作小提琴@http://jsfiddle.net/VSph2/57/
function cQuery() {
this.Keywords= "Foo";
this.Title = "Bar";
}
var Query = new cQuery();
var Fields = [{
Name: "Keyword Search",
Binding: "Keywords"
}, {
Name: "Title Search",
Binding: "Title"
}];
var myApp = angular.module('myApp', []);
function MyCtrl($scope) {
$scope.blah = Object.keys(Query);
$scope.fields = Fields;
$scope.query = Query;
}
<div ng-controller="MyCtrl">
<div ng-repeat="field in fields">{{field.Name}}
<input type="text" ng-model="query[field.Binding]" type="text" class="form-control" id="{{field.Id}}" /> {{field.Binding}}
</div>Elsewhere...
<input ng-model="query.Keywords" type="text"/> {{query.Keywords}}
</div>
我编辑了你查看数据的方式。希望这有所帮助。
http://jsfiddle.net/VSph2/42/
Removed query, attached input directly to fields.
相关文章:
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- 使用onclick调用属性对象函数
- 嵌套为..in 循环,列出多维对象的属性(对象)
- 动态属性对象 - JSON
- 在不使用隔离范围angularjs自定义指令的情况下获取属性对象
- 通过属性传递属性/对象.Javascript
- Javascript:属性/对象的类型
- 访问JSON中的属性(对象)
- 属性对象Javascript不是用Jquery Deferred设置的
- 无法读取属性'#<对象>'未定义的获取错误
- Twitter中多属性对象的子字符串匹配
- 无法设置'data'属性'对象'标记.(只IE8)
- 更新数据属性对象属性值
- 将属性对象的选定对象从原型推入数组
- 将单个属性对象字面量的数组转换为仅包含其值的数组的最佳方法
- 寻找一种更简单的方法来检查是否多个属性&对象中的方法是未定义的
- 主干模型:带有get方法的空属性,但在属性对象中
- 如何赋值给"text"someText"属性对象在动能js
- Angularjs的数据绑定与数据属性对象
- 如何将一个嵌套的javascript对象转换为只有一级属性对象