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