0
我有數據顯示在Angular應用程序的ui網格中,其中一個字段是日期/時間。這由單元過濾器計算,基於在應用程序的主菜單欄中選擇的時區,該時區使用rootScope中的值作爲其模型。如何在模型更改時重新計算cellFilter值?
該過濾器是目前這樣定義(在控制器上):
.filter('selectedTimeZoneFilter', function() {
return function(value, timeZone) {
return moment(value).tz(timeZone.value).format('DD/MM/YY HH:mm');
};
})
..和值經由cellFilter定義像這樣的傳遞:
cellFilter: 'selectedTimeZoneFilter:grid.appScope.timeZone'
..finally,要通過的值在根範圍內設置在控制器中:
var vm = this;
vm.timeZone = $rootScope.timezone;
這對於初始顯示值 - 當網格首次生成時,它使用當前選定的時區值顯示日期/時間。但是,這似乎並沒有給Angular足夠的信息來知道當時區更改時(通過使用$ rootScope.timezone作爲其模型的選擇框)應該重新計算這些值。
是否有一種簡單的方法可以告訴Angular單元格內容取決於時區選擇,需要在其更改時重新計算,還是需要使用類似ng-change標籤的方式進行某種手動重新生成?
能否請你添加一個plunker此 – Bhavjot