我试图隐藏单元格(不是完整的行),其中的日期等于DateTime.MinValue
,基本上是0001-01-01T00:00:00
。
这是我的观点模型:
$scope.vm.users = [
{
"Username": "user1",
"EarliestLogin": "0001-01-01T00:00:00",
"LatestLogin": "0001-01-01T00:00:00"
},
{
"Username": "user2",
"EarliestLogin": "2016-07-15T11:18:19Z",
"LatestLogin": "2016-07-15T11:18:19Z"
},
{
"Username": "user3",
"EarliestLogin": "0001-01-01T00:00:00",
"LatestLogin": "0001-01-01T00:00:00"
}
];
表格如下:
<table>
<tr>
<th>User Name</th>
<th>Earliest Login</th>
<th>Latest Login</th>
</tr>
<tr ng-repeat="user in vm.users">
<td>{{user.Username}}</td>
<td>{{user.EarliestLogin | date:'short'}}</td>
<td>{{user.LatestLogin | date:'short'}}</td>
</tr>
</table>
当前输出:
User Name Earliest Login Latest Login
user1 1/1/01 12:00 AM 1/1/01 12:00 AM
user2 7/15/16 1:18 PM 7/15/16 1:18 PM
user3 1/1/01 12:00 AM 1/1/01 12:00 AM
期望输出:
User Name Earliest Login Latest Login
user1
user2 7/15/16 1:18 PM 7/15/16 1:18 PM
user3
我可以使用ng-repeat
上的过滤器隐藏整行,但我不知道如果只隐藏一个单元格DateTime.MinValue
...
这是我的plnkr。
答案 0 :(得分:3)
乍一看,您可以创建辅助功能
$scope.vm.isDateTimeMinValue = function (value) {
return value === "0001-01-01T00:00:00";
};
并在模板中使用
<tr ng-repeat="user in vm.users">
<td>{{user.Username}}</td>
<td><span ng-hide="vm.isDateTimeMinValue(user.EarliestLogin)">{{user.EarliestLogin | date:'short'}}</span></td>
<td><span ng-hide="vm.isDateTimeMinValue(user.LatestLogin)">{{user.LatestLogin | date:'short'}}</span></td>
</tr>
注意!您可以使用相应的服务将"0001-01-01T00:00:00"
定义为Angular JS constant。
答案 1 :(得分:1)
将ng-if
条件放在span
单元格内的td
标记上,将$scope.DateTime.MinValue
视为具有所需最小值的应变变量:
<tr ng-repeat="user in vm.users">
<td>{{user.Username}}</td>
<td><span ng-if="$scope.DateTime.MinValue != user.EarliestLogin">{{user.EarliestLogin | date:'short'}}</span></td>
<td><span ng-if="$scope.DateTime.MinValue != user.LatestLogin ">{{user.LatestLogin | date:'short'}}</span></td>
</tr>