我在寫一個angular.js指令,它是一個對象數組的可重用輸入組件。AngularJS:將對象屬性名稱傳遞給指令
由於不可能在ng-repeat
使用原始值(參見:What is the angularjs way to databind many inputs?),我要對象的數組傳遞到部件:
在控制器I初始化:
$scope.theSimpsons = [{ value: 'Bart' }, { value: 'Lisa' }];
而
<div ng-app="App">
<div ng-controller="AppCtrl">
<multi-input items="theSimpsons" />
</div>
</div>
指令本身是這樣實現的:然後在HTML文件中使用它
directive('multiInput', function() {
return {
restrict: 'E',
scope: {
items: '=items'
},
template:
'<div>' +
'<div ng-repeat="item in items">' +
'<input type="text" ng-model="item.value">' +
'<a ng-click="items.splice($index, 1)">remove</a>' +
'</div>' +
'<a ng-click="items.push({value:\'\'})">add</a>' +
'</div>'
};
});
這一切都很好。
我的問題:如果物體沒有value
會怎麼樣?
此指令編碼屬性的名稱(value
)硬。但是,如果我想要這樣一個數組:[{ name: 'Bart' }, { name: 'Lisa' }]
。
是否可以傳遞對象的名稱,例如:像
<multi-input items="names" property="name"></multi-input>
,並以某種方式使用它的指令來訪問name
財產?
這裏是我創建的JSFiddle http://jsfiddle.net/napU6/5/以顯示此指令。
你的問題讓我在我的問題$ scope.theSimpsons = [{值:'Bart'},{value:'Lisa'}]; kuddos – 2016-12-28 10:48:09