[英]AngularJS: Bind to all object properties?
我有一個Model,它接受一個可以包含任何屬性集的對象。
我想知道我是否可以綁定到每個對象屬性,而不提前知道屬性值。
以此為例
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>
這允許我定義一組任意參數,但仍然使用angular綁定沒有問題。
沒問題:
<li ng-repeat='(key, value) in obj'>
{{key}} : {{value}}
</li>
它也在文檔中: http : //docs.angularjs.org/api/ng.directive : ngRepeat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.