为什么 $scope >= 0 在插值中显示 true,而在控制器中显示为空?

问题描述 投票:0回答:1

我根据成功的操作将

$scope
变量设置为
0
1
并使用 ng-show 显示元素。该步骤完成后,我将
$scope
变量重置为空。但是,我发现如果在插值
$scope = ''
中,
true
显示为
{{$scope >= 0}}
。为什么不假呢?

controllers.Ctrl = function ($scope, $rootScope, $timeout, $filter, ajax, $parse) {

$scope.datachanged = '';
console.log($scope.datachanged >= 0); // true

};
angularjs boolean angularjs-scope logical-operators
1个回答
0
投票

这就是适合您的 javascript。

'' >= 0
将计算为
true
,因为
''
实际上是一个空字符串。

相反,您为什么不将变量重置为

undefined
(即
$scope.datachanged = undefined
)。
undefined >= 0
将评估为
false

或者,如果变量仅设置为 0 或 1,您也可以在进行插值时检查变量是否等于 1。

{{datachanged === 0}

© www.soinside.com 2019 - 2024. All rights reserved.