通过<input ng-model =“”/>断言var set不是未定义的

时间:2016-04-13 10:44:06

标签: javascript angularjs

我尝试根据输入<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

2 个答案:

答案 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");
};

真是太棒了!