0
我有一個指令,基於它的$有效值在表單元素上設置CSS類。我想用單選按鈕列表來使用它。在集合中有多個單選按鈕,但我只需要將指令添加到其中的一個,因爲a)它們都控制相同的模型,並且b)CSS最終將顯示單個圖像標籤,我只希望每個單選按鈕列表一次。驗證單選按鈕列表
下面是一些HTML:
<div ng-app="myApp">
<input required type="radio" ng-model="type" name="typeGroup" value="type1">Type 1
<input add-validation-class required type="radio" ng-model="type" name="typeGroup" value="type2">Type 2
</div>
腳本:
angular.module('myApp', []).directive('addValidationClass', function() {
return {
require: '^ngModel',
link: function($scope, $element, $attrs, $ngModel) {
if (!$ngModel) return;
var update = function() {
alert($ngModel.$dirty);
$element
.removeClass()
.addClass($ngModel.$dirty ? ($ngModel.$valid ? 'valid' : '') : '');
};
$scope.$watch($attrs.ngModel, function (newValue, oldValue) {
update();
});
}
};
});
小提琴:http://jsfiddle.net/JqBgs/
您可以從小提琴看到,無論手錶火災更新的單選按鈕點擊。這是我所期望的,因爲這兩個單選按鈕都控制着同一個模型。但是,您也可以看到左側的單選按鈕不髒。所以CSS類不適用。
爲什麼不髒?