我正在使用ngTagsInput并希望在我的模型发生变化时对其进行一些验证。这是我想要实现的目标。
标记:
<div ng-repeat="field in fields">
<tags-input ng-model="field.selectedData" max-tags="{{field.maxTags}}" enforce-max-tags placeholder="{{option.placeholder}}">
<auto-complete source="updateAutocomplete($query)"></auto-complete>
</tags-input>
</div>
领域/型号:
$scope.fields = [
{
name: 'assay',
placeholder: 'Select one assay...',
maxTags: 1,
selectedData: [] // These are the models
},
{
name: 'cellLines',
placeholder: 'Select cell line(s)...',
maxTags: 5,
selectedData: []
},
...
]
最后,我的enforceMaxTags
指令:
.directive('enforceMaxTags', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
ngModelCtrl.$parsers.push(function(value) {
console.log('link called');
});
}
};
})
该enforceMaxTags
指令正在编译,但link
即使模型更改也不会调用该函数。但是,数据绑定似乎确实有效,因为如果我console.log
在selectedData
表单提交时,它会填充正确的对象。我错过了什么?
提前致谢。