現在のロケールに基づいて数値をフォーマットする簡単なフィルタを作成しました。AngularJS:テンプレートにフィルタを適用する
angular.module('myApp').filter('doubleFilter', DoubleFilter);
function DoubleFilter($translate) {
return function(val, decimalPlaces) {
if (val && (typeof val === 'number')) {
val = val.toFixed(decimalPlaces);
if ($translate.use() === 'de_DE') {
val = val.replace('.', ',');
}
}
return val;
}
};
私はこのように私のテンプレートでこのフィルタを呼び出し、それが正常に動作します:
{{dog.weight | doubleFilter : 2}}
しかし、私は$のtranslate.use(「en_USのに」)内の数値の形式を使用して言語を変更したとき私のテンプレートは更新されません。明らかに私はここで何かを逃している。
言語が変更されたときにビューを更新するにはどうすればよいですか?
こんにちはTusahr(https://docs.angularjs.org/guide/filterを参照)を助けるかもしれません。私は今、イベントに耳を傾けることができますが、あなたは少し "フィルターの実行方法"を詳しく教えてください。 – Paul
@Paul、スコープを追加する$ digest() – Tushar