【发布时间】:2015-12-21 18:02:01
【问题描述】:
所以,假设我们有一个简单的对象,它包含两个不同语言的字符串,例如welcomeText = {"de": "Willkommen zurück!", "en": "Welcome back!"}。
welcomeText 是 Texts 对象的属性,它保存所有文本并异步传递
(所以我需要处理可能的未定义值,因此需要处理 elvis 运算符)。
现在,在我的 angular2 模板中,我想根据当前选择的语言显示文本。
这是有效的(但不是我需要的):
..
{{Texts?.welcomeText?.de}} // works, as well as {{Texts?.welcomeText?.en}}
..
我想要的是这个(因为可以更改语言):
..
{{Texts.?welcomeText?[language]}}
..
不幸的是,这会导致错误:
EXCEPTION: Template parse errors:
Parser Error: Conditional expression
{{Texts?.welcomeText?[language]}}
requires all 3 expressions at the end of the expression ..
不知道如何解决此错误。我只是不确定我是否使用错了,或者它根本不打算那样工作。目前我使用一个简单的解决方法,但我发现它有点难看,因为我在任何地方都有一个方法调用,我想显示文本:
..
{{getText('welcomeText')}}
..
..
getText(name : string){
if(this.Texts)
return this.Texts[name][this.language]
..
这只是要走的路,还是有办法按照我想要的方式使用猫王操作员?
非常感谢您的任何回答!
【问题讨论】:
标签: key angular square-bracket