【发布时间】:2015-06-27 07:45:42
【问题描述】:
我正在使用指令来构建自定义验证器,它工作正常。但是,它只被调用过一次!如果我的“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;
};
}
};
});
【问题讨论】:
-
你打算 ng-model 在 ul 上做什么? ng-model 用于对输入等组件进行双向数据绑定,用户可以在其中输入存储在模型变量中的值。你不能那样做。这是没有意义的。只需删除此指令并使用
标签: angularjs angularjs-directive