2014-10-02 86 views
0

我想筛选日期并仅显示当前日期和隐藏未来日期的日期。这里是我的html代码:日期筛选和在angular.js中显示

<div ng-controller="date"> 
     <div ng-repeat="d in dates"> 
      <ul> 
       <div ng-show='(show==true)' ng-hide='(show==false)'><li>{{d.thisDate() | date:"mediumDate"}}</li></div> 
      </ul> 
     </div> 
    </div> 

这里是我angular.js代码:

var milo = angular.module('milo',[]); 

function date($scope){ 

$scope.dates = [ 
{ 
    id: 0, 
    thisDate: function(){ 
     return new Date(); 
    } 
}, 
{ 
    id: 1, 
    thisDate: function(){ 
     return new Date(); 
    } 
}, 
{ 
    id: 2, 
    thisDate: function(){ 
     return 141232741945463; 
    } 
}, 


]; 

$scope.show = function(){ 
    if (thisDate == new Date()){ 
     return true; 
    } 
    else if (thisDate > new Date()){ 
     return false; 
    } 
}; 
}; 


milo.controller('date', date); 

预先感谢帮助我。

+0

谢谢,我会继续这一点,但现在它不帮助我:/ – newport 2014-10-02 11:07:54

回答

0

您应该使用

if (thisDate <= new Date()){ 
    return true; 
} 
else if (thisDate > new Date()){ 
    return false; 
} 

,因为你的日期将在时刻t定义和Show()函数将在时刻t + 1被称为...

+0

嗨,我已经改变了一下代码,并将其上传到jsfiddle.net。这里是 - http://jsfiddle.net/adeling/Tb9j5/21。一旦我使用ng-show指令,一切都消失了。 – newport 2014-10-04 07:01:00

+0

我修改你的代码并使之工作 http://jsfiddle.net/Tb9j5/43/ – 2014-10-06 07:45:44