Angular-Translate を使用する場合、補間に使用するマップを渡すことができます。
構文は、たとえば
{{ 'KEY_TO_TRANSLATE' | translate:interpulationValues }}
問題は、特別なオブジェクトで渡したい変数を収集する必要があることです。
現在のスコープ全体 (+ 継承済み) を Translate に渡して、スコープ上にあるものを補間で使用できるようにする方法があることを知りたかったのですか?
感謝
Angular-Translate を使用する場合、補間に使用するマップを渡すことができます。
構文は、たとえば
{{ 'KEY_TO_TRANSLATE' | translate:interpulationValues }}
問題は、特別なオブジェクトで渡したい変数を収集する必要があることです。
現在のスコープ全体 (+ 継承済み) を Translate に渡して、スコープ上にあるものを補間で使用できるようにする方法があることを知りたかったのですか?
感謝
それが良い考えかどうかはわかりませんが、この方法でこれを行うことができるはずです:
{{ 'KEY_TO_TRANSLATE' | translate:this}}
ビューで直接オブジェクトを構築するために、ディレクティブを使用することもできます (よく覚えていれば、フィルター パラメーターにはコントローラー ベースのオブジェクトが必要です)。
<ANY translate="TRANSLATION_ID"
translate-values="{ username: someScopeObject.username }"></ANY>
http://angular-translate.github.io/docs/#/guide/06_variable-replacementを参照してください
$scope
通常のjavascript for loopを使用してループすることができます。継承されたすべてのプロパティが存在します。
このアプローチは、変数名のスクリーニングを行うことができるという意味で優れています (または で始まる Angular 変数を除外し$
たり$$
、関数名を除外したりするなど)。
$scope.varList = {};
for (var key in $scope) {
if (key !== 'varList' &&
key.charAt(0) !== '$' &&
key.charAt(1) !== '$' &&
!angular.isFunction($scope[key])) {
$scope.varList[key] = $scope[key];
}
}
任意のオブジェクトからドット表記を使用できます。
スコープ内に次のオブジェクトdurationValuesがあり、それを引数として変換に渡すと、datacontext の任意のプロパティまたはサブプロパティを使用できます
{{max}} は、渡された datacontext (つまりdurationValues )から補間されます。
$scope.durationValues = {
min: $scope.minDuration,
**max**: $scope.maxDuration
}
そして、次のようなビューフラグメントがあります
{{ 'PLAN_DETAILS:MAXIMUM_REQUIRED' | 翻訳:$スコープ. 期間値}}
どこ
'PLAN_DETAILS:MAXIMUM_REQUIRED': 'The plan needs to be less than or equal to **{{max}}** weeks long.'
これで物事が明確になることを願っています