我想知道在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