我尝试在输入中使用ng-model
和ng-model-options
。 Ng-model
用于确保用户只能使用以下指令将数字输入到输入中:
angular.module('officeNetApp').directive('onlyNumbers', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
console.log('TEST');
modelCtrl.$parsers.push(function (inputValue) {
if (inputValue === undefined) {
return '';
}
var transformedInput = inputValue.replace(/[^0-9]/g, '');
if (transformedInput!==inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
ng-model-options
用于更新模糊输入。我这样做是为了在模糊时触发验证,如下所示:
<input type="text" id="forwardedFrom" name="forwardedFrom" ng-model="numbers" class="vfnz-input--text" placeholder="Forwarded from" ng-model-options="{ updateOn: 'blur' }" only-numbers="only-numbers" required />
出于某种原因,当我删除ng-model-options
时,指令功能可以使用户只能输入数字。我不能同时拥有它们,因为我需要两者来启用所需的功能。
不确定为什么我不能同时使用/不确定另一种方法来实现我所追求的目标。