angular2 elvis操作符和括号符号/按键访问对象

ch4*_*40s 10 key square-bracket angular

所以,假设我们有一个简单的对象,它包含两种不同语言的字符串
welcomeText = {"de": "Willkommen zurück!", "en": "Welcome back!"}.

welcomeText是的属性Texts包含所有文本,并得到异步传输对象(所以我需要照顾可能未定义的值,因此猫王运营商).现在,在我的angular2模板中,我想基于当前选择的语言显示文本.
这是有效的(但不是我需要的):

..
{{Texts?.welcomeText?.de}}   // works, as well as {{Texts?.welcomeText?.en}}
.. 
Run Code Online (Sandbox Code Playgroud)

我想要的是这个(因为语言可以改变):

..
{{Texts.?welcomeText?[language]}}
.. 
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致错误:

EXCEPTION: Template parse errors:
Parser Error: Conditional expression 
      {{Texts?.welcomeText?[language]}}
     requires all 3 expressions at the end of the expression ..
Run Code Online (Sandbox Code Playgroud)

不知道如何解决这个错误.我只是不确定我是否使用它错了,或者它是不是打算像那样工作.目前我使用一个简单的解决方法,但我发现它有点难看,因为我有一个方法调用到处想要显示文本:

..
{{getText('welcomeText')}} 
..
..
getText(name : string){
 if(this.Texts)
   return this.Texts[name][this.language]
..
Run Code Online (Sandbox Code Playgroud)

这是仅仅是要走的路还是有办法以我想要的方式做到这一点,用elvis算子?
非常感谢任何答案!

Zyz*_*zle -1

我有一种感觉,您在这里尝试执行的操作实际上是不可能的,模板语法页面上肯定没有任何相关内容。

就其价值而言,我认为您提出的解决方案实际上没有任何问题,这可能就是我自己解决这个问题的方式。

编辑:还值得注意的是,Angular 2 的 I18n 和 L10n 功能尚未实现,我将继续关注此功能来解决问题