我的想法是我的数组中有几个项目,它们有标题,公司和日期值。然后将这些显示在具有ng-repeat的div中。
我想要的是,如果日期值是今天的日期,它们将显示在第一个div中,如果日期值不是今天,则显示在不同的div中。 (理想情况下,我会在今天,昨天,上周等分开它们。)
它目前所做的是显示第一个div中的日期并将其日期显示为今天,即使该值未设置为数组中的值。第二个div完全是空的。
JS:
var app = angular.module("myApp", []);
app.controller("boardController", function($scope) {
$scope.today= new Date();
$scope.posts = [
{
"Title" : "Alfreds Futterkiste",
"Company" : "Microsoft",
"Date" : "2016-06-19",
},{
"Title" : "Berglunds snabbköp",
"Company" : "IBM",
"Date" : "2016-06-18",
},{
"Title" : "Centro comercial Moctezuma",
"Company" : "MexaTel",
"Date" : "2016-06-03",
},{
"Title" : "Ernst Handel",
"Company" : "BlaBlaCar",
"Date" : "2016-06-11",
}
]
});
HTML的结构如下:
<body ng-controller="boardController">
<!-- Products Container -->
<div class="col-xs-12 col-md-8 col-md-offset-2">
<!-- Product Container -->
<h2>Today</h2>
<div class="list-group-item" ng-repeat="post in posts">
<div ng-if="post.Date = today">
<h3>
{{post.Title}}
</h3>
<h5>
{{post.Date | date : 'EEE MMM d'}}
</h5>
</div>
</div>
<h2>Yesterday</h2>
<div class="list-group-item" ng-repeat="post in posts">
<div ng-if="post.Date > today">
<h3>
{{post.Title}}
</h3>
<h5>
{{post.Date | date : 'EEE MMM d'}}
</h5>
</div>
</div>
</div>
</body>
答案 0 :(得分:4)
由于Date
是一个字符串而today
是Date对象,因此您需要将它们转换为相同类型才能正确比较。我会使用date
filter将today
格式化为与Date
相同的字符串:
app.controller("boardController", function($scope, $filter) {
$scope.today = $filter('date')(new Date(), 'yyyy-MM-dd');
// ...
});
然后在HTML中(注意===
比较运算符)
ng-if="post.Date === today"