1

通貨単位で金額を表示できる(かなり複雑な)指示文があります。その通貨のルールに基づいて通貨をフォーマットし(たとえば、通貨にセントがある場合など)、ロケールに基づいて数字と記号の書式を設定し、金額が負の場合は記号とクラスを追加します。レンダリングされたディレクティブの結果を変数として変換して角度変換する方法

私は、ディレクティブの結果を翻訳の変数として使用したいと思います。

は要するにplunker with a simplified setup here

があり、私がしたいと思うものを:などの翻訳されて何かを

Your balance: <strong currency data-amount="-1337" data-symbol="'€'"></strong> 
<p translate translate-values="{ currency: '€', amount: 1337, beneficiary: 'carol' }">PAY_TO</p> 

:plunkerで

var translations = { 
    PAY_TO: "You must pay {{ amount }} to {{ beneficiary}}" 
}; 

(キーがPAY_TO_PROPERです)

ゴールは置き換えですには、ディレクティブから返されたHTMLの書式付き部分が含まれています。

プランナーでは、指示文が簡略化されていることに注意してください。実際には、テンプレートに追加したくないことが多くあります。例えばISO_CODEに基づくフォールバックシンボル、通貨に基づいてレンダリングする分数を決定する(いくつかの名前を付けるには0,2,3,5、または8桁の通貨があり、これは複雑です)

これは共通のパターンでしょうか?変数としてレンダリングされたディレクティブの結果をAngularで適切な方法で渡すのか、それとも醜いハックになるのでしょうか?

私は翻訳やディレクティブを間違って使用していますか?私はほとんどこれがとても難しいと私はGoogleやstackoverflowでこれを行う方法を探して誰かを見つけることができないことを信じていることはできません。

答えて

1

translate-compileと呼ばれる角度変換オプションがあり、現在のスコープ(https://angular-translate.github.io/docs/#/guide/05_using-translate-directive#using-translate-directive_post-compiling)のコンテキストで翻訳に渡された値をコンパイルするために使用できます。

あなたはこのようにそれを使用することができます:http://plnkr.co/edit/IRFzWU2Qfw7zxdBNSl4L

<p translate translate-values="{ amount: '<currency data-amount=\'1337\' data-symbol=&quot;\'€\'&quot;></currency>', beneficiary: 'carol' }" translate-compile>PAY_TO_PROPER</p> 

は、添付のフィドルを参照してください。

関連する問題