为什么{{isNan(x)}}在angularJS中不起作用?

前端之家收集整理的这篇文章主要介绍了为什么{{isNan(x)}}在angularJS中不起作用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请注意,此问题的标题已更改为更专注于确切问题的标题.看到注释流跟随它是怎么来的,我意识到问题是AngularJS似乎不处理{{isNaN()}}

我的HTML中有以下内容

xx {{ option.selectedSubject }} yy {{ (option.selectedSubject == null) }} zz

我也试过:

xx {{ option.selectedSubject }} yy {{ option.selectedSubject == null }} z

和:

xx {{ option.selectedSubject }} yy {{ option.selectedSubject === null }} zz

有人可以帮助我解释为什么当我查看我的页面时,为什么我会收到以下每个信息:

xx null yy false zz

更新1我尝试了以下:

aa {{ option.selectedSubject === "null" }} bb {{ option.selectedSubject == "null" }} cc

并给出了这一点:

aa false bb false cc

更新2我不知道这是否有帮助,但这里填充了option.selectedSubject的值.在这种情况下,本地存储没有任何内容

$scope.option.selectedSubject = parseInt(localStorage.get('selectedSubject'));

当我检查$scope.option.selectedSubject的值是NaN

这里的问题不是isNaN.问题是您正在调用不存在的$scope变量的函数.

每个插入的文本(‘{{text}}’)都与$scope变量相关联,并针对该$scope变量进行评估.

为了使事情变得容易,$scope.property可以在飞行中创建,如果它不存在.当您使用ngModel =’someProperty’或{{aPropertyName}}时,如果不存在,则会自动为您创建相应的$scope.someProperty或$scope.aPropertyName.但这个捷径只适用于图元.

函数调用总是针对$范围进行求值,而不会创建.这就是为什么你必须说$scope.isNaN = isNaN,就像你之前发表的一样.

尝试用任何功能. isArray,isNumber等.除非您在控制器中放置了一个$scope.functionName = functionName,否则它将无法正常工作.

编辑:另外,如果您真的想在插值中进行isNaN测试,可以利用javascript的类型系统并使用

{{ property != property }}

但这是坏的形式…

http://plnkr.co/edit/wfLqzk8QxScsJPF5qY12?p=preview

猜你在找的Angularjs相关文章