angularjs - 内联 if 中的多个语句

标签 angularjs conditional-operator

是否可以在 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 中创建一个函数,它将结合 doAdoB。它不仅会让 Angular 解析变得愉快,而且代码本身也会变得更清晰、更易于阅读。毕竟这是模板,最好保持简单。

关于angularjs - 内联 if 中的多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27533380/

相关文章:

ORACLE IIF 声明

c# - 可空类型和三元运算符 : why is `? 10 : null` forbidden?

javascript - 了解 java/apex 复杂三元运算符

javascript - 监视指令属性

javascript - 如何在angularJs中双击调用方法?

angularjs - 为什么 angular.service "private"字段不更新?

javascript - 从 AngualrJS 应用程序中隐藏 API 访问凭据

javascript - 在条件表达式中声明变量(三元运算符)

javascript - Angular : Provider must define factory method

javascript - 条件运算符和&& ||的区别构造