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

上一篇: Difference between modelValue and viewValue

下一篇: What is scope.$modelValue in AngularJS?