我有一个旨在分配给普通文本输入的指令。
<input type="text" ng-model="fooModel" foo-input size="30"
placeholder="insert value"></input>
我有很多验证函数,比如测试数字的精度,我使用$解析器来控制提交的值。
myApp.directive('fooInput', function () {
return {
restrict: 'A',
require: 'ngModel',
controller: function ($scope, $element, $attrs) {
this.errorMessage = ""
},
link: function (scope, element, attrs, ctrl)
return ctrl.$parsers.push(function (inputValue) {
var originalVal = element.val();
if (!testForOverPrecision(numericVal)) {
//do something here to set the directive as invalid
}
if (originalVal != inputValue) {
ctrl.$setViewValue(res);
ctrl.$render();
}
});
我有两个问题:
return
语句答案 0 :(得分:1)
我正在使用Angular 1.2x并且我创建了一个指令来确定文本是否包含@符号。
.directive('noAt', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
ctrl.$parsers.unshift(function(viewValue) {
if (/@/.test(viewValue)) {
ctrl.$setValidity('noAt', false);
return undefined;
} else {
ctrl.$setValidity('noAt', true);
return viewValue;
}
});
}
};
})