【发布时间】:2014-03-08 08:42:44
【问题描述】:
当使用 $dirty 更改输入时,我有以下 html 可以工作并更改 div 的类:
<div class="text-input" ng-class="{typing : (loginForm.test.$dirty || loginForm.test.length > 0)}">
<span>Username</span>
<input type="text" name="test" ng-model="user.name" placeholder="test">
</div>
但是,当我尝试将其作为指令时,它的 ng-class 部分停止工作。谁能帮我让它工作?
指令:
angular.module('myApp').directive('smartInputElement',function(){
return {
restrict: 'E',
require: 'ngModel',
compile: function(element, attrs) {
element.replaceWith('<div class="text-input" ng-class="{typing : ('+attrs.formname+'.'+attrs.name+'.$dirty || '+attrs.formname+'.'+attrs.name+'.length > 0)}">'+
'<span>'+attrs.label+'</span>'+
'<input type="text" name="'+attrs.name+'" ng-model="ngModel" placeholder="'+attrs.name+'"></div>');
}
}
});
指令的html是:
<smart-input-element name="username" formName="loginForm" label="Username" ng-model="username"></smart-input-element>
【问题讨论】:
标签: javascript angularjs