所以,假设我们有一个简单的对象,它包含两种不同语言的字符串
welcomeText = {"de": "Willkommen zurück!", "en": "Welcome back!"}
.
该welcomeText
是的属性Texts
包含所有文本,并得到异步传输对象(所以我需要照顾可能未定义的值,因此猫王运营商).现在,在我的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] ..
这是仅仅是要走的路还是有办法以我想要的方式做到这一点,用elvis算子?
非常感谢任何答案!