【发布时间】:2016-03-08 13:26:07
【问题描述】:
我有这个指令,它在每个带有add-icon-element 属性的<input> 元素之前添加一个<i> 元素。现在我要做的是观察每个<input> 元素的验证,因此当用户在其中一个元素中键入内容时,前面的<i> 元素的类将更改为fa-check green-i。我尝试通过使用attrs.$observe 来查看类何时从ng-invalid 更改为ng-valid,但它仅在DOM 结构化时触发一次,它不会对input 元素中的更改做出反应。
我做错了什么?有没有办法使用输入$valid 来做到这一点?
我看到了一些关于input 的答案,并建议将名称添加到form 和input - 但是如果我需要验证多个inputs 而不仅仅是一个,我该怎么办?
angular.module('mean.theme')
.directive("addIconElement", function () {
return {
restrict: 'EA',
link: function (scope, inputElement, attrs) {
var $icon = $('<i class="fa"></i>');
inputElement.before($icon);
attrs.$observe('class', function(val){
if (val.indexOf("ng-valid") >= 0) {
inputElement.prev().addClass('fa-check green-i');
}
});
}
};
});
这是我在 html 中的“输入”之一:
<form role="form" name="createProjectForm" class="form-validation">
<div class="form-group">
<label class="control-label text-center center-block" for="project.name">
Name Your Project
</label>
<div class="input-icon right">
<input type="text" placeholder="type here" name="project.name"
ng-model="project.name" required="required" class="form-control" add-icon-element/>
</div>
</div>
<form>
【问题讨论】:
-
你的指令 html 长什么样??
-
@PankajParkar 是的,对不起,我添加了 html..
标签: javascript jquery angularjs validation