AngularJS ng基于日期值重复筛选项目
我有一个简单的重复:AngularJS ng基于日期值重复筛选项目,angularjs,angularjs-scope,angularjs-ng-repeat,angular-filters,Angularjs,Angularjs Scope,Angularjs Ng Repeat,Angular Filters,我有一个简单的重复: <li ng-repeat="data in myData.Entries"> {{ data.EntryNumber }} -- <strong>From</strong> {{ data.InfoDetails[0].FromDt.substring(6, data.InfoDetails[0].FromDt.length - 2) | date:'MMM yyyy' }} <strong>to</str
<li ng-repeat="data in myData.Entries">
{{ data.EntryNumber }} --
<strong>From</strong> {{ data.InfoDetails[0].FromDt.substring(6, data.InfoDetails[0].FromDt.length - 2) | date:'MMM yyyy' }} <strong>to</strong>
{{ data.InfoDetails[0].ToDt == null && 'current' || data.InfoDetails[0].ToDt.substring(6, data.InfoDetails[0].ToDt.length - 2) | date:'MMM yyyy'}}
</li>
我是否可以筛选此数据,使其仅包括(从当前年度开始)使用时间少于3年的项目
我的JS:
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.myData = {
"Entries": [{
"EntryNumber": "E1",
"InfoDetails": [{
"FromDt": "/Date(1320912000000)/",
"ToDt": null,
"RegisteredAs": {
"SurName": "test",
"Title": "MRS"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "A1",
"InfoDetails": [{
"FromDt": "/Date(1276153200000)/",
"ToDt": "/Date(1320912000000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "X1",
"InfoDetails": [{
"FromDt": "/Date(1239346800000)/",
"ToDt": "/Date(1276153200000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "Z1",
"InfoDetails": [{
"FromDt": "/Date(1063177200000)/",
"ToDt": "/Date(1086850800000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}
]
}
});
这里有一个插曲:用叉子叉你的手
希望这会有所帮助@dhavlcengg-谢谢,但是输出列表还没有更新?我比较了fromdt应该是3岁。若您将其更改为某个较大的值,您将在输出列表中找到差异。是否可以改为基于todt?是的,可以。你可以根据自己的要求做任何事情
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.myData = {
"Entries": [{
"EntryNumber": "E1",
"InfoDetails": [{
"FromDt": "/Date(1320912000000)/",
"ToDt": null,
"RegisteredAs": {
"SurName": "test",
"Title": "MRS"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "A1",
"InfoDetails": [{
"FromDt": "/Date(1276153200000)/",
"ToDt": "/Date(1320912000000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "X1",
"InfoDetails": [{
"FromDt": "/Date(1239346800000)/",
"ToDt": "/Date(1276153200000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}, {
"EntryNumber": "Z1",
"InfoDetails": [{
"FromDt": "/Date(1063177200000)/",
"ToDt": "/Date(1086850800000)/",
"RegisteredAs": {
"SurName": "test",
"Title": "MR"
},
"RegisteredWith": "test"
}]
}
]
}
});
app.filter('filterList', function() {
return function(items) {
var retn = [];
angular.forEach(items, function(item){
if((new Date().getFullYear()) - (new Date(+item.InfoDetails[0].FromDt.substring(6, item.InfoDetails[0].FromDt.length - 2)).getFullYear()) >= 3){
retn.push(item);
}
});
console.log(retn);
// return items.slice().reverse();
return retn;
};
});