我尝试根据输入<input>
标记的值启用或停用按钮。该字段可以留空或者int>必须输入0,所以,只要limitMatches
不是undefined
,我就要断言。
我已将input
标记配置为:
<input type="number" min="1" step="1" class="form-control" ng-model="query.limitMatches"/>
在Angular控制器中:
$scope.query = {limitMatches: null};
$scope.searchAllowed = function() {
typeof $scope.query.limitMatches !== "undefined";
};
但是,我的searchAllowed
函数总是返回true,即使在控制台中(使用console.log($scope.query.limitMatches);
)我可以看到limitMatches
显然设置为undefined
。
答案 0 :(得分:0)
问题是undefined
并不严格等于null
,这就是你的函数为“未定义”模型返回true事件的原因。
我会简化函数以对任何假值进行相同的反应:
$scope.searchAllowed = function() {
return Boolean($scope.query.limitMatches);
};
答案 1 :(得分:0)
我找到了解决方案!
原来我需要将typeof $scope.query.limitMatches !== "undefined";
括在括号中......
$scope.searchAllowed = function() {
(typeof $scope.query.limitMatches !== "undefined");
};
真是太棒了!