0
我有一個tags
角度元素指令,其操作與Stack Overflow自己的「標籤」輸入字段非常相似,用於解決這裏的問題。在Angular的元素指令中創建自定義表單驗證器?
我想驗證tag
元素上的ng-model
屬性是至少有一個標籤和少於10個標籤的數組。但是,我不想創建一個單獨的指令來驗證它,因爲我再也不需要驗證數組的長度了。我希望邏輯能夠被包含在element指令中。
這裏是我到目前爲止有:
angular.module("directives.tags", []).directive("tags", ["Tag", "$timeout", function(Tag, $timeout) {
return {
require: 'ngModel',
restrict: 'E',
scope: {
availableTags: '=',
selectedTags: '=ngModel',
placeholder: '@'
},
link: function($scope, element, attributes, ctrl) {
// Snip
ctrl.$validators.taglength = function(mv, vv) {
return (mv.length > 0);
}
}
}
我的指令,這樣使用:
<tags available-tags="data.tags" name="tags" ng-model="text.tags"></tags>
<span ng-show="writeForm.tags.$error.taglength">Invalid!</span>
但是,我taglength
驗證不工作,或者我,否則不具約束力它正確。有任何想法嗎?
你不應該要麼選擇'標籤= 「usedTagsArray」'在你的模板或'ngModel:' =''在你的指令的範圍內? –
我對Angular沒有足夠的瞭解來回答這個問題。 – ReactingToAngularVues
排序!但是你的答案仍然不完全。函數'ctrl。$ validators.ngModel'只在頁面加載時被調用一次。它在模型更改時不會再被調用。爲什麼? – ReactingToAngularVues