Angularjs和Number.NaN

use*_*015 8 javascript null nan undefined angularjs

当我碰到这个时,我正在浏览角度文档:

https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1556

请注意 this.$viewValue = Number.NaN;

不仅在这个文档中,而且在其他角度文档中也是如此.

这样做的优点/缺点是什么,而不是将其设置为undefinednull

Dav*_*ich 5

在AgularJS中的具体术语:

$ viewValue

视图中的实际字符串值.

$ modelValue

模型中的值,控件绑定到的值.

因此,如果您有输入,则其中的值采用字符串形式.如果将模型值或插值显示为标记,{{ myInt }}或者 {{ 5 + 5 }},它将显示为字符串.

这是因为HTML是一种文本语言,而JS是一种功能和价值的语言.因此,为了处理双重绑定的双重模式,AngularJS使用$ viewValue服务作为模型字段的"显示"值,并使用它$modelValue来跟踪"实际"值.

"显示"值永远不应"未定义",因为未定义模型的插值不应引发错误.并且"显示"值永远不应该是数字.所以,在它是一个正式的字符串(插值$modelValue)之前,它是一个NaN.