是否可以在 AngularJS 表达式的内联 if 语句中包含多个语句?例如,以下失败:
ng-change="someCondition() ? doA(); doB() : doC()"
ng-change="someCondition() ? doA(), doB() : doC()"
这可以按如下方式完成:
ng-change="someCondition() ? doA() : doC(); someCondition() ? doB() : ''"
但这很丑陋,调用 someCondition() 两次,并尖叫着要在 Controller 中完成。有什么方法可以让第一个示例起作用吗?
最佳答案
Angular 表达式仅限于简单的表达式。任何更复杂的东西都可能被解析器拒绝并抛出错误。了解 Angular Expressions vs. JavaScript Expressions 之间的差异在文档中。即:
无控制流语句:您不能在 Angular 表达式中使用以下内容:条件、循环或异常。
没有逗号和 Void 运算符:您不能在 Angular 表达式中使用
,
或void
。
等等
您可以做的最好的事情是在 Controller 中创建一个函数,它将结合 doA
和 doB
。它不仅会让 Angular 解析变得愉快,而且代码本身也会变得更清晰、更易于阅读。毕竟这是模板,最好保持简单。
关于angularjs - 内联 if 中的多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27533380/