2016-06-19 40 views
1

的想法是,我在我的陣列幾個項目,其中有一個標題,公司和日期值。然後用ng-repeat在div中顯示。AngularJS顯示,如果今天的日期是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

'='是賦值,''==和'==='是比較運算符。 – elclanrs

+0

@elclanrs與變化,什麼都沒有顯示出來的第一個div或第二股利。 – PaulVO

+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" 
+0

太棒了!這完全符合我的想法。 如果你不介意我問,你會怎麼去做出比今天更舊的第二個div顯示日期,但不超過一週舊的? – PaulVO

+0

'post.Date> today'應該可以與我發佈的內容一起工作。 – dfsq

+0

但是,你將如何去設置例如'$ scope.yesterday'?我嘗試'$ scope.yesterday = $ filter('date')(new Date()。setDate($ scope.today.getDate() - 1),'yyyy-MM-dd');'但是這似乎沒有工作。 – PaulVO

相關問題