断言var集通过<输入ng模型>不是未定义的

Assert var set via <input ng-model> is not undefined

本文关键字:gt 模型 未定义 ng 输入 var lt 断言      更新时间:2024-06-09

我正试图根据输入到<input>标记中的值启用或禁用按钮。该字段可以为空,或者必须输入int>0,因此,我想断言,只要limitMatches不是undefined

我已将我的input标签配置为:

<input type="number" min="1" step="1" class="form-control" ng-model="query.limitMatches"/>

在角度控制器中:

$scope.query = {limitMatches: null};
$scope.searchAllowed = function() {
    typeof $scope.query.limitMatches !== "undefined";
};

然而,我的searchAllowed函数总是返回true,即使在控制台中(使用console.log($scope.query.limitMatches);)我可以看到limitMatches显然被设置为undefined

问题是undefined并不严格等于null,这就是为什么函数为"未定义"模型返回true事件的原因。

我会简化函数,对任何错误的值做出相同的反应:

$scope.searchAllowed = function() {
    return Boolean($scope.query.limitMatches);
};

我找到了解决方案!

原来我需要把typeof $scope.query.limitMatches !== "undefined";放在括号里。。。

$scope.searchAllowed = function() {
    (typeof $scope.query.limitMatches !== "undefined");
};

真是个踢球者!