我正在尝试比较控制器功能中的两个日期,并根据控制器中的逻辑将true / false返回到ng-show和ng-hide,但它没有按预期工作,下面是plnkr相同。有人可以帮我弄清问题是什么。
http://plnkr.co/edit/CWvb1uy0PeYFb0Tf34rY?p=preview
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$filter) {
$scope.name = 'World';
$scope.SetDate=function(dt)
{
$scope.NewDt=$filter('date')(dt, 'shortDate');
$scope.currentDate = $filter('date')(new Date(), 'shortDate');
$scope.parsedCurr=Date.parse($scope.currentDate);
$scope.parsedFuture= Date.parse($scope.NewDt);
if ( $scope.parsedCurr <$scope.parsedFuture) {
return true;
}
}
});
答案 0 :(得分:1)
你否定了两次,你有:
<span ng-hide="!SetDate('2015-12-31T00:00:00')">
你需要
<span ng-hide="SetDate('2015-12-31T00:00:00')">
答案 1 :(得分:1)
如果你需要检查的是两个解析日期,我会在ng-show中进行检查以简化代码。
<span ng-show="parsedCurr < parsedFuture">
You can see me!
</span>
<span ng-hide="parsedCurr < parsedFuture">
You can't see me :(
</span>
或者,如果您不想使用该功能,只需稍微更改逻辑并使用ng-show或ng-hide。像这样:
$scope.SetDate=function(dt)
{
$scope.NewDt=$filter('date')(dt, 'shortDate');
$scope.currentDate = $filter('date')(new Date(), 'shortDate');
$scope.parsedCurr=Date.parse($scope.currentDate);
$scope.parsedFuture= Date.parse($scope.NewDt);
if ( $scope.parsedCurr < $scope.parsedFuture) {
return true;
}
else
{
return false;
}
}
你的标记是这样的:
<span ng-show="SetDate('2015-12-31T00:00:00')">
SHOW ME
</span>
<br>
<span ng-hide="SetDate('2015-12-31T00:00:00')">
HIDE ME
</span>