我有一个ng-repeat列表结果,但我的目的只是显示包含今天日期的元素。
我当前的设置可以执行此操作,但需要重新加载页面以重新定义时间变量,从而过滤结果。
说实话,我不确定这样的实时过滤器(当00.00列表自动变为空时)可以完成,所以如果你能透露一些信息,我将非常感激。问题。
这是我目前的布局:
<div class="row msf-row"
ng-repeat="record in recordlist | filter: search | filter: record.date = dateJson "
ng-class="{ 'msf-cancelled': record.cancelled}">
<div class="col-md-1">{{record.date}}</div>
<div class="col-md-1"><strong>{{record.car}}</strong></div>
<div class="col-md-2">{{record.driver}}</div>
<div class="col-md-2">{{record.from}}</div>
</div>
相关的JS:
$scope.dateJson = moment().format("YYYY MM DD");
$scope.addRecord = function () {
$scope.recordlist.push(
{
date: $scope.dateJson,
car: $scope.carList.code,
driver: $scope.driverList.name,
from: $scope.locationList.place,
destination: $scope.locationList2.place,
pax: $scope.paxList
}
);
jsonToRecordLocalStorage($scope.recordlist);
};
基本上,过滤器将$ scope.dateJson与对象属性record.date进行比较并过滤结果,但当然date.Json仅在页面重新加载时加载,而不是实时加载。
任何输入?
答案 0 :(得分:0)
您可以定义自己的过滤器功能,例如http://davidjs.com/2014/02/how-to-call-any-function-as-a-filter-in-angularjs/
此过滤器功能看起来像这样
$scope.filterRecordsByDate = function(record) {
var date = moment();
//reset to midnight
date.set('hours', 0).set('minutes', 0).set('seconds', 0);
//you might need to reset to midnight also the property 'record.date'
return record.date == date;
}
然后在你的HTML
中ng-repeat="record in recordlist | filter: search | filter: filterRecordsByDate "