我认为它将在ng-show或的背景下考虑ng-class?还有其他情况吗?看起来真实和虚假与纯JavaScript略有不同 - 但到目前为止我所知道的唯一例外是[]- 这在JavaScript中是真实的但在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"但在Angular 1.2.1的情况下,它不是.要在Angular 1.2.1中获得纯JavaScript的相同结果,似乎我们可以使用ng-show="!!ctrl.foobar" https://jsfiddle.net/6ayaLhbk/3/
如果它ng-class在Angular 1.2.1中,那么它似乎又回到了纯粹的JS truthy和falsy规则:https://jsfiddle.net/6ayaLhbk/5/
Angular 表达式类似于 JavaScript 表达式,但有以下区别:
上下文:JavaScript 表达式根据全局窗口进行计算。在 Angular 中,表达式是根据范围对象进行计算的。
宽容:在 JavaScript 中,尝试计算未定义的属性会生成 ReferenceError 或 TypeError。在 Angular 中,表达式求值可以容忍 undefined 和 null。
过滤器:您可以在显示数据之前使用表达式中的过滤器来格式化数据。
无控制流语句:您不能在 Angular 表达式中使用以下内容:条件、循环或异常。
无函数声明:您不能在 Angular 表达式中声明函数,即使在 ng-init 指令内也是如此。
无法使用文字表示法创建正则表达式:您无法在 Angular 表达式中创建正则表达式。
无法使用 New 运算符创建对象:您不能在 Angular 表达式中使用 new 运算符。
禁止按位、逗号和 void 运算符:您不能在 Angular 表达式中使用按位、逗号或 void 运算符。
| 归档时间: |
|
| 查看次数: |
2689 次 |
| 最近记录: |