modelValue和viewValue之间的区别
使用自定义指令时,会添加验证函数来验证整数输入
var INTEGER_REGEXP = /^-?d+$/;
app.directive('integer', function() {
return {
require: 'ngModel',
link: function(scope, elm, attrs, ctrl) {
ctrl.$validators.integer = function(modelValue, viewValue) {
if (ctrl.$isEmpty(modelValue)) {
// consider empty models to be valid
return true;
}
if (INTEGER_REGEXP.test(viewValue)) {
// it is valid
return true;
}
// it is invalid
return false;
};
}
};
});
$ validators对象中的每个函数接收modelValue和viewValue。
modelValue和viewValue有什么区别?
可以在你的ngModelController
定义$formatter
和$parser
。 viewValue是渲染指令用来绘制自身的值,一旦ngModel的$parser
列表被应用,modelValue就被存储在范围中。 如果您更改范围中的值,ngModel将通过$formatters
运行该值,然后由渲染指令将其读取为viewValue。
通常,viewValue是在输入元素中显示的字符串,而modelValue是已被解析为目标格式的值(例如,日期选择器指令中的Date对象)
链接地址: http://www.djcxy.com/p/77925.html