因此,假設我們有一個簡單的對象,它包含兩種不同語言的字符串,如
welcomeText = {"de": "Willkommen zurück!", "en": "Welcome back!"}
。angular2 elvis操作符和括號表示法/通過鍵訪問對象
的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]
..
這只是走的路還是有辦法按照我想要的方式與貓王操作員一起操作?
非常感謝任何答案!