我想知道在angularjs中如何使用指令。我有幾個頁面有很多輸入字段,每次我想添加一些條件ng-class和一個只在特定條件下顯示的按鈕。一個粗略的例子可以看出:使用angularjs中的指令模板
現在,我想少打字,希望指令能幫助我。下面的代碼無法正常工作,但也許這顯示了我想去的地方:
這就是我要輸入我的html:
<tr>
<td>First Name:</td>
<td>
<dirty-input attr="firstName"/>
</td>
</tr>
<tr>
<td>Last Name:</td>
<td>
<dirty-input attr="lastName"/>
</td>
</tr>
,所以我試着用下面的控制器來實現:
app.controller('PersonController', function($scope) {
$scope.person = {firstName: 'John', lastName: 'Doe'};
$scope.personEdited = {firstName: $scope.person.firstName, lastName: $scope.person.lastName};
$scope.firstName = {objName: 'person', editedObject: 'personEdited', attrName: 'firstName'};
$scope.lastName = {objName: 'person', editedObject: 'personEdited', attrName: 'lastName'};
});
和這個指令:
app.directive('dirtyInput', function() {
return {
restrict: 'E',
scope: {
attr: '=attr',
},
template: '<input type="text" ng-model="{{attr.editedObject}}.{{attr.attrName}}"/>'
};
});
這可以看出:JSFiddle with directives (not working)
很明顯,這是行不通的。我是否想做一些不可能的事情,或者我只是做錯了什麼?
我喜歡這樣的做法,但我不能得到它的工作。你可以看看這個jsfiddle的錯誤:http://jsfiddle.net/ZyCdm/3/ – EasterBunnyBugSmasher
我更新了我的答案上面:-) – pje
對不起,這不是我真正想要的。正如我的jsfiddle示例所示,我想在一個Controller的範圍內有多個輸入字段。我的計劃是像這樣指定一個字段名稱:並且不爲每個字段名稱創建一個Controller。 –
EasterBunnyBugSmasher