如何在AngularJS的视图中嵌套表达式?

时间:2015-05-18 07:13:10

标签: angularjs angular-translate

我正在使用 Angular Material angular-translate

基本上在使用AM的md-select时我有:

<md-select-label>{{ userLanguage ? userLanguage.chosenLanguage: "Choose language"}}</md-select-label>

如果未选择任何选项,则显示选择语言,否则显示所选选项。

最后,我使用 angular-translate 在我的应用程序的视图中翻译所有标签(例如,多种语言中的“选择语言”),如:

{{ 'LB_CHOOSE_LANGUAGE' | translate }}

然而,当我尝试通过以下方式嵌套2个表达式(三元运算符+角度转换过滤器)时:

{{ userLanguage ? userLanguage.chosenLanguage : {{ 'LB_CHOOSE_LANGUAGE' | translate }} }}

我的语法无效:

  

错误:[$ parse:syntax] http://errors.angularjs.org/1.4.0-rc.2/ $ parse / syntax

有关如何处理嵌套表达式的任何线索?

1 个答案:

答案 0 :(得分:6)

Handlebar语法意味着JavaScript表达式,或具体而言,Angular expression。在把手内使用把手是没有意义的,因为你已经告诉编译器你要从HTML切换到JavaScript。

话虽如此,你可以在没有内部把手的情况下重写你的表达式:

{{ (userLanguage ? userLanguage.chosenLanguage : 'LB_CHOOSE_LANGUAGE') | translate }}