2016-10-16 117 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; 
    } 

}; 

我把這個過濾器在我的模板像這樣工作得很好:當我使用$ translate.use(「EN_US」)的數字格式更改語言

{{dog.weight | doubleFilter : 2}} 

然而我的模板沒有更新。很明顯,我錯過了這裏的一些東西。

如何在語言更改時更新視圖?

回答

1

我覺得你的指令需要監聽的本地更改的通知「,例如:

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

嗨Tusahr,感謝您的答覆。我現在可以聽到這個事件,但是您能否詳細說明一下「如何執行過濾器」? – Paul

+0

@Paul,添加範圍$ digest()再次執行您的過濾器 – Tushar