这是我第一次尝试使用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 ''
};
})
这是一种干净的方法,还是应该采用更“内置”的策略?
另外,我甚至设计了如何在单元格中进行编辑...这个过滤器是否会影响编辑单元格的能力?
感谢。
答案 0 :(得分:1)
是的,最好使用UI网格单元格过滤器而不是自定义。对于日期验证,您可以在将数据推入ui-grid之前处理数据。
{ field: 'contract_end', displayName: 'contract_end',type: 'date', cellFilter: 'date:\'MM/yyyy\'' }]