我正在使用 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
有关如何处理嵌套表达式的任何线索?
答案 0 :(得分:6)
Handlebar语法意味着JavaScript表达式,或具体而言,Angular expression。在把手内使用把手是没有意义的,因为你已经告诉编译器你要从HTML切换到JavaScript。
话虽如此,你可以在没有内部把手的情况下重写你的表达式:
{{ (userLanguage ? userLanguage.chosenLanguage : 'LB_CHOOSE_LANGUAGE') | translate }}