JavaScript数组是NaN?AngularJS ngModel

Har*_*rry 4 javascript angularjs angular-ngmodel

我试图看看ngModel的价值是什么:

.directive('myDir', function() {
  return {
    require: '?ngModel',
    link: function(scope, elm, attr, ngModel) {
      if (!ngModel)
        return

      console.log(ngModel)
      console.log(ngModel.$modelValue)
    }
  };
})
Run Code Online (Sandbox Code Playgroud)

即使我的ngModel是一个数组,它记录NaN?

这里发生了什么?

Dav*_*ich 6

$ viewValue $ modelValue默认为Number.NaN- 非定义的JavaScript定义 - 数字.

检查Github然后你就找到了

var NgModelController = ['$scope', '$exceptionHandler', '$attrs', 
                                 '$element', '$parse',
'$animate', '$timeout',
    function($scope, $exceptionHandler, $attr, $element, $parse, 
                   $animate, $timeout) 
  {
  this.$viewValue = Number.NaN;
  this.$modelValue = Number.NaN;
Run Code Online (Sandbox Code Playgroud)

为什么这个方便?因为AngularJS试图避免像null和的情况一样undefined.视图值和模型值由"范围"绑定和定义.这就是$ scope服务的重点 - 管理modelValue和viewValue.

AngularJS服务访问它们之前,它们是默认的number.NaN