有幾個問題。
- 您應該使用ng-show =「d.checkDate()」。
<div ng-app="milo">
<div ng-controller="date">
<div ng-repeat="d in dates">
<ul>
<div ng-show="d.checkDate()">
<li>{{d.thisDate() | date:"mediumDate"}}
</li>
</div>
</ul>
</div>
</div>
- 你不能比較兩個新的日期,並期望他們是平等的。例如,如果您嘗試此操作,它將返回false。
alert(new Date() == new Date());
- 你不能在每個元素的作用域中引用你的函數thisDate。它是未定義的。你應該像訪問一個函數一樣訪問它,否則你會得到函數本身,而不是函數的結果。所以你的代碼可以被重構成這樣的東西。
var milo = angular.module('milo',[]);
alert(new Date() == new Date());
function date($scope){
$scope.dates = [
{
id: 0,
thisDate: function(){
return new Date();
},
checkDate: function(){
if(this.thisDate()>new Date()){
return false;
}
else {
return true;
}
}
},
{
id: 1,
thisDate: function(){
return new Date();
},
checkDate: function(){
if(this.thisDate()>new Date()){
return false;
}
else {
return true;
}
}
},
{
id: 2,
thisDate: function(){
return 141232741945463;
},
checkDate: function(){
if(this.thisDate()>new Date()){
return false;
}
else {
return true;
}
}
}
];
};
milo.controller('date', date);
希望這會有所幫助。
感謝佩德羅,你的回答是真正有幫助和教學:) – codeman 2014-10-05 12:24:37