如果value=0,AngularJs中的过滤器是否工作?
我有如果value=0,AngularJs中的过滤器是否工作?,angularjs,angularjs-filter,Angularjs,Angularjs Filter,我有$scope.event.privacy=0 当我尝试执行{{event.privacy | eventPrivacyFilter}}时,filter不会做任何思考。。。但是如果$scope.event.privacy=1或2或….,这就是工作 如果value=0,则AngularJs中的过滤器是否工作 过滤器: (function() { 'use strict'; angular.module('eventMod').filter('eventPrivacyFilt
$scope.event.privacy=0代码>
当我尝试执行{{event.privacy | eventPrivacyFilter}}
时,filter不会做任何思考。。。但是如果$scope.event.privacy=1或2或….
,这就是工作
如果value=0
,则AngularJs
中的过滤器是否工作
过滤器:
(function() {
'use strict';
angular.module('eventMod').filter('eventPrivacyFilter', eventPrivacyFilter);
function eventPrivacyFilter(EventPrivacyRegistry) {
return function(privacyId) {
if (!privacyId) {return null;}
return EventPrivacyRegistry.getById(privacyId).name;
};
}
})();
注册:
(function() {
'use strict';
angular.module('eventMod').service('EventPrivacyRegistry', EventPrivacyRegistry);
function EventPrivacyRegistry(_) {
return {
getList: function () {
return [
{ id: 0, name: '1'},
{ id: 1, name: '2'},
{ id: 2, name: '3'},
{ id: 3, name: '4'}
];
},
getById: function (privacyId) {
console.log(privacyId);
console.log(_.find(this.getList(), {id: privacyId }));
return _.find(this.getList(), {id: privacyId });
}
};
}
})();
if(!privacyId){return null;}
是在$scope.event.privacy=0
时返回null的语句,因为if(!0)
的计算结果为true
因此,EventPrivacyRegistry.getById(privacyId).name在这种情况下,不执行代码>
解决方案是与null
和undefined
进行比较,如下所示:
if(privacyId === null || privacyId === undefined) {
return;
}
if(!privacyId){return null;}
是在$scope.event.privacy=0
时返回null的语句,因为if(!0)
的计算结果为true
因此,EventPrivacyRegistry.getById(privacyId).name在这种情况下,不执行代码>
解决方案是与null
和undefined
进行比较,如下所示:
if(privacyId === null || privacyId === undefined) {
return;
}
这与AngularJs无关。这是javascriptfalsy值
在您的示例中,零(0)被计算为falsy值。
如果你想进行严格的比较,那么你需要明确地要求它
所以像这样更改代码
// old code
{{ event.privacy | eventPrivacyFilter }}
// new code
{{ event.privacy != null | eventPrivacyFilter }}
在这里阅读更多有关比较falsy和truthy值的信息这与AngularJs无关。这是javascriptfalsy值
在您的示例中,零(0)被计算为falsy值。
如果你想进行严格的比较,那么你需要明确地要求它
所以像这样更改代码
// old code
{{ event.privacy | eventPrivacyFilter }}
// new code
{{ event.privacy != null | eventPrivacyFilter }}
在此处阅读有关比较falsy和truthy值的更多信息显示筛选代码。请在此处输入更多代码。“我们什么也看不到。@TarunDugar查看更新的问题。显示筛选代码。请在此处添加更多代码。”。“我们什么也看不到。”塔伦杜加看最新的问题。