2016-10-16 2 views
0

Я создал простой фильтр для форматирования числа, основываясь на текущей локали.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») формат чисел в мой шаблон не обновляется. Очевидно, что я упускаю что-то здесь.

Как я могу обновить представление, когда изменения языка?

ответ

1

Я думаю, ваша директива должна слушать «местное измененное уведомление», например:

scope.$on('$localeChangeSuccess', function() { 
      // code to execute the filter 
       }); 
+0

Hi Tusahr, спасибо за ответ. Теперь я могу прослушать это событие, но не могли бы вы немного рассказать о том, «как выполнить фильтр»? – Paul

+0

@Paul, добавить область. $ Digest(), чтобы снова выполнить фильтр – Tushar

 Смежные вопросы

  • Нет связанных вопросов^_^