0
我正在使用指令来构建一个自定义验证器,它工作正常。但是,它只被称为一次!如果我的“roleItems”被更新,这个指令不会再被调用!每次更新“roleItems”时如何调用它?角度指令只被调用一次
这里是标记。而“非空”是我的指令。
<form name="projectEditor">
<ul name="roles" ng-model="project.roleItems" not-empty>
<li ng-repeat="role in project.roleItems"><span>{{role.label}}</span> </li>
<span ng-show="projectEditor.roles.$error.notEmpty">At least one role!</span>
</ul>
</form>
这是我的指令。它应该检查ng-model“roleItems”是否为空。验证的
angular.module("myApp", []).
directive('notEmpty', function() {
return {
require: 'ngModel',
link: function (scope, elm, attrs, ctrl) {
ctrl.$validators.notEmpty = function (modelValue, viewValue) {
if(!modelValue.length){
return false;
}
return true;
};
}
};
});
你打算在ul上做什么? ng-model用于对输入等组件进行双向数据绑定,其中用户可以输入存储在模型变量中的值。 ul不能这样做。这没有意义。只需删除此指令并使用 –