正确的方法显示没有日期

时间:2016-07-06 16:18:55

标签: javascript angularjs angular-ui angular-ui-grid

这是我第一次尝试使用angularjs和重客户端javascript编码。大部分时间我都是在.NET服务器端C#ASPX页面上完成的。

使用.NET MVC,在客户端使用angularjs和ui-grid。我的MVC控制器返回一个具有日期列(contract_start)的数据集。有时start_date包含默认的未初始化值;这显示在ui-grid上,年份为1900年。

我在我的ui-grid columnDefs中将日期格式化为...

{ name: 'contract_start', width: 140, cellTooltip: true, cellFilter: 'date:"mm/yyyy"' },

对于未初始化的日期值,显示为“00/1900”。

我希望这些在网格上显示为空白。什么是正确的方法?

请记住,稍后我将不得不添加编辑此网格单元的功能。

我尝试过的一种策略是使用过滤功能...

{ name: 'contract_end', width: 140, cellTooltip: true, cellFilter: 'noDateFilter' },

然后将该功能添加到控制器......

.filter('noDateFilter', function () {
    //check if value is valid date
    //and return string formatted as 'mm/yyyy'
    //else return empty string ''
    };
})

这是一种干净的方法,还是应该采用更“内置”的策略?

另外,我甚至设计了如何在单元格中进行编辑...这个过滤器是否会影响编辑单元格的能力?

感谢。

1 个答案:

答案 0 :(得分:1)

是的,最好使用UI网格单元格过滤器而不是自定义。对于日期验证,您可以在将数据推入ui-grid之前处理数据。

{ field: 'contract_end', displayName: 'contract_end',type: 'date', cellFilter: 'date:\'MM/yyyy\'' }]