0

我正在使用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.logselectedData表单提交时,它会填充正确的对象。我错过了什么?

提前致谢。

4

0 回答 0