为什么{{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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |