我认为这将在ng-show
或ng-class
的背景下考虑?还有其他情况吗?看起来真正的和虚假的不同于纯粹的JavaScript稍微有点不同 - 但我目前知道的唯一例外是[]
--这是JavaScript中的真理,但是AngularJS中的虚假。AngularJS中的真假和虚假价值是什么?
(实际上,我尝试使用AngularJS 1.2.1和[]
是falsy,而在AngularJS 1.4.8和1.5.0,[]
是truthy见https://jsfiddle.net/6ayaLhbk/,https://jsfiddle.net/6ayaLhbk/1/和https://jsfiddle.net/6ayaLhbk/2/)
我认为它有一个人可能认为ng-show="ctrl.foo"
与ng-hide="!ctrl.foo"
相同,但在角1.2.1的情况下,并非如此。在角1.2.1获得纯JavaScript的相同的结果,好像我们可以用ng-show="!!ctrl.foobar"
https://jsfiddle.net/6ayaLhbk/3/
如果是在角1.2.1 ng-class
,那么现在看来似乎又回到了纯JS truthy和falsy规则:https://jsfiddle.net/6ayaLhbk/5/
相关的'[]':https://github.com/angular/angular.js/issues/3969 – Shomz
如果我们能得到一美元每智能化downvoter这里... – Shomz
嘿,太极者无极而生! :)对不起,有任何误解,但你说[]是Javascript中的真值? 我有点迷惑,因为当我测试 '[] == “”'' [] == 0' '[] == FALSE' 我得到了所有情况下都是这样。 – ebragaparah