6
我有一个模型,它可以包含任何一组属性。AngularJS:绑定到所有对象属性?
我想知道如果我可以绑定到每个对象属性,而不需要提前知道属性值。
拿这个举例来说
var object1 =
{
Name: '1',
Identifier: '12345',
Password: 'password'
}
var object2 =
{
Name: '2',
Identifier: 'object_two'
}
var objects = [object1,object2];
我的对象可以有不同的和独特的性能,我想这种结合的形式。
我知道我可以使用for(var属性在对象中)并遍历每个对象 - 但是我可以用AngularJS绑定来做同样的事吗?
我想做的线沿线的东西:
<ul><li ng-repeat="attrib in obj">
{{attrib}}
</li</ul>
编辑:谢谢你的答案下面我已经进一步得到了一点。我似乎无法实现与此双向绑定。这小提琴说明了什么,我试图做的:
我基本上是想用这样的绑定:
<p ng-repeat="(key,value) in obj">
{{key}} : <input ng-model="obj[key]" />
</p>
这工作,但我只能输入一个字符时 - 有趣。
最终编辑:我发现一个可接受的替代方案,以防其他人有这个问题。我无法直接绑定到一个对象没有一些问题,但我能够绑定到一个数组像文档状态在下面的答案。
下面的小提琴完成我需要做的事情,而只是略微更加冗长。
function ctrl($scope) {
$scope.objects =
[
[
{Name: 'Name:', Value: 'Joe'},
{Name: 'Identification', Value: '1'},
{Name: 'Password', Value: 'secret'}
],
[
{Name: 'Name:', Value: 'Jane'},
{Name: 'Identification', Value: '2'},
{Name: 'Weather', Value: 'Sunny'}
]
];
// $scope.setSelected = ?????;
}
<div ng-app>
<div ng-controller="ctrl">
Objects
<ul>
<br/>
Listing of properties:
<br/>
<li ng-repeat="obj in objects" class="swatch">
{{obj}}
<p ng-repeat="prop in obj">
{{prop.Name}}: <input ng-model="prop.Value" /></p>
</li>
</ul>
</div>
</div>
这让我定义的参数任意设定,但仍然没有采用了棱角分明的问题进行绑定。
真棒!非常感谢,因为我没有先检查文档! – Yablargo
@Yablargo - 与角,文档可以是一个完整的命中或错过:) – tymeJV
我把那么多的小提琴 - 但这些似乎是只读的,这是正常的吗?我希望能够编辑这些。我在我的主要问题中发布了小提琴。当我尝试执行类似obj。{{key}}的操作时,这不会解析权限,并且绑定到{{value}}会生成只读框。 – Yablargo