2016-06-13 8 views
0

属性をAngularに変換するのが苦労しています。ng-repeatの変数属性名の翻訳にアクセスできない

すべてのアイテムに 'day'属性が設定されている配列で、繰り返しています。翻訳部に

<h2 ng-repeat="f in forecast">{{ "days[f.day]" | translate }} {{ f.date | date:'dd' }}</h2> 

私は7人の子供を持っている「日」属性は、曜日ごとに1つの属性があります。

$translateProvider.translations('en', { 
    ... 
    days: { 
    sunday:'Sunday', 
    monday:'Monday', 
    tuesday:'Tuesday', 
    wednesday:'Wednesday', 
    thursday:'Thursday', 
    friday:'Friday', 
    saturday:'Saturday' 
    } 
}); 

だから私は「f.day」の値を持つ「日」属性で右の翻訳にアクセスしようとしているが、私は右の構文を見つけることができませんよ。

私は喜んでこれについていくつかの助けに感謝します。

ありがとうございました。

+0

jsfiddleを作成するとすばらしいことになります。だから私たちはよりよく理解できる –

答えて

0

私が間違っているのは、プロバイダにdaysを設定したことだけです。あなたはf.dayは、あなたの鍵の一つと一致することを確実に知っている限り、あなたがdays[f.day]のようなものを行うことはできません。この現在の構造では

days: { 
    sunday:'Sunday', 
    monday:'Monday', 
    tuesday:'Tuesday', 
    wednesday:'Wednesday', 
    thursday:'Thursday', 
    friday:'Friday', 
    saturday:'Saturday' 
} 

:あなたが持っている何

は基本的に連想配列です。例はdays.friday

のようになります。最初にチェックするのは、f.dayのログで実際の内容を確認することです。

次の提案は、f.dayが整数であるという前提に基づいています。 (

days = [ 
    {"name":"Sunday"}, 
    {"name":"Monday"}, 
    {"name":"Tuesday"}, 
    {"name":"Wednesday"}, 
    {"name":"Thursday"}, 
    {"name":"Friday"}, 
    {"name":"Saturday"}, 
] 

しかし、その後、あなたがdays[f.day].nameを行う必要があります:あなたはまた、このようなオブジェクトの配列を行うことができます

days = [ 
    "Sunday", 
    "Monday", 
    "Tuesday", 
    "Wednesday", 
    "Thursday", 
    "Friday", 
    "Saturday" 
] 

days[f.day]が動作するためには、あなたは日、このような配列になりたいです再びf.dayが整数であると仮定して)

0

あなたの返事をお寄せいただきありがとうございます。私は日々正しいですが、問題はトランスレータフィルタで角括弧の間に置くことです。このように:

{{ "days[f.day]" | translate }} 

私の見解インサイドそれがショー:日[f.day]ない訳。

+0

これを達成する方法を見つけたと思う。 これは同じ例ではありませんが、モデル値との連結です。 {{'home。' + button.label |翻訳}} – user2734072

関連する問題