我有ng-repeat
,其中显示了日期列表以及有关该日期购买的信息。
HTML:
<div ng-repeat="data in MyData">
<p>
{{ data.purchasedOn.substring(6, data.purchasedOn.length - 2) | date:'dd/MM/yyyy' }}
</p>
<br>
<p>
{{ data.purchaseDescription }}
</p>
</div>
显示:
01/02/2013
"Lorem ipsum dolor sit amet, consectetur adipisicing elit"
10/04/2014
"Lorem ipsum dolor sit amet, consectetur adipisicing elit"
02/08/2014
"Lorem ipsum dolor sit amet, consectetur adipisicing elit"
13/06/2014
"Lorem ipsum dolor sit amet, consectetur adipisicing elit"
19/02/2013
"Lorem ipsum dolor sit amet, consectetur adipisicing elit"
如果{{ data.purchaseDescription }}
在当月的最后6个月内显示purchasedOn
,我该如何显示?{/ p>
答案 0 :(得分:0)
假设您要显示purchaseOn但不显示描述,您可以使用this one described here之类的函数来确定6个月前的日期。
function addMonths(date, months) {
date.setMonth(date.getMonth() + months);
return date;
}
然后定义一个函数来获得布尔显示/隐藏值:
function shouldHide(purchasedOn){
var purchaseDate = Date.parse(purchasedOn);
var sixMonthsAgo = addMonths(new Date(), -6);
var hide = purchaseDate < sixMonthsAgo ? true : false;
return hide;
}
现在,您可以在<p>
元素
<p ng-hide={{shouldHide(data.purchasedOn)}}>
{{ data.purchaseDescription }}
</p>
修改强> 如果你只是想隐藏整个元素,你可以创建一个像这样的过滤函数:
$scope.filterOldDates = function(date)
{
if(shouldHide(date)){
return false;
}
return true;
};
您可以这样使用它:
<div ng-repeat="data in MyData | filterOldDates">