如何在 AngularJS' 视图中嵌套表达式?
How to nest expressions in AngularJS' views?
我正在使用 Angular Material 和 angular-translate.
基本上当使用 AM 的 md-select 我有:
<md-select-label>{{ userLanguage ? userLanguage.chosenLanguage: "Choose language"}}</md-select-label>
显示 选择语言 如果没有选项被 selected 否则 selected 选项。
最后,我使用 angular-translate 来翻译我应用程序视图中的所有标签(例如 "Choose language" 多种语言),例如:
{{ 'LB_CHOOSE_LANGUAGE' | translate }}
但是,当我尝试通过以下方式嵌套 2 个表达式(三元运算符 + angular-翻译过滤器)时:
{{ userLanguage ? userLanguage.chosenLanguage : {{ 'LB_CHOOSE_LANGUAGE' | translate }} }}
我得到无效语法:
Error: [$parse:syntax] http://errors.angularjs.org/1.4.0-rc.2/$parse/syntax
关于如何处理嵌套表达式的任何线索?
Handlebar 语法暗示了一个 JavaScript 表达式,或者更具体地说,一个 Angular expression。在 handlebars 内使用 handlebars 没有意义,因为你已经告诉编译器你要从 HTML 切换到 JavaScript.
也就是说,您可以在没有内部把手的情况下重写您的表达式:
{{ (userLanguage ? userLanguage.chosenLanguage : 'LB_CHOOSE_LANGUAGE') | translate }}
我正在使用 Angular Material 和 angular-translate.
基本上当使用 AM 的 md-select 我有:
<md-select-label>{{ userLanguage ? userLanguage.chosenLanguage: "Choose language"}}</md-select-label>
显示 选择语言 如果没有选项被 selected 否则 selected 选项。
最后,我使用 angular-translate 来翻译我应用程序视图中的所有标签(例如 "Choose language" 多种语言),例如:
{{ 'LB_CHOOSE_LANGUAGE' | translate }}
但是,当我尝试通过以下方式嵌套 2 个表达式(三元运算符 + angular-翻译过滤器)时:
{{ userLanguage ? userLanguage.chosenLanguage : {{ 'LB_CHOOSE_LANGUAGE' | translate }} }}
我得到无效语法:
Error: [$parse:syntax] http://errors.angularjs.org/1.4.0-rc.2/$parse/syntax
关于如何处理嵌套表达式的任何线索?
Handlebar 语法暗示了一个 JavaScript 表达式,或者更具体地说,一个 Angular expression。在 handlebars 内使用 handlebars 没有意义,因为你已经告诉编译器你要从 HTML 切换到 JavaScript.
也就是说,您可以在没有内部把手的情况下重写您的表达式:
{{ (userLanguage ? userLanguage.chosenLanguage : 'LB_CHOOSE_LANGUAGE') | translate }}