2016-04-25 3 views
1
ng-if="{{(Date | date:"dd/mm/yyyy") == (question.DateTimeEnd | date:"dd/mm/yyyy")}}" 

У меня есть это выражение, где $scope.Date = new Date().ng-if сравнение даты с использованием оператора ==

Я получаю ошибку анализатора. Мне интересно, можно ли это сделать с помощью оператора == в самом mustache expression.

+0

Зачем использовать '{{}}' (выражения), когда у вас есть 'ng-if'? –

+0

Мой плохой. я полностью забыл об этом, потому что я скопировал t из моей разметки, где я ее показывал. пока кто-то не указал на это –

ответ

3

попробуйте вот это. вам не нужно {{}} в ng-if, а также "" в формате даты.

ng-if="(Date | date:'dd/MM/yyyy') == (question.DateTimeEnd | date:'dd/MM/yyyy')" 

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

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.Date = '20160313T00:00:00'; 
 
    
 
    $scope.DateTimeEnd = '20160313T00:00:00'; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="MainCtrl"> 
 
    
 
     <p ng-if="(Date | date:'dd/MM/yyyy') == (DateTimeEnd | date:'dd/MM/yyyy')" ng-bind="DateTimeEnd | date:'dd/MM/yyyy'"></p> 
 
    
 
</div>

+0

ok, который не выдавал никаких ошибок, поэтому я просто проверю его, чтобы увидеть, получаю ли я желаемый результат. –

0

Попробуйте это: -

.controller('myController', function ($scope) { 

    // Convert Date into long format for comparision by using .getTime() 

    $scope.tempDate = new Date(); 
    $scope.date = $scope.tempDate.getTime(); 

    $scope.DateTime = $scope.question.DateTimeEnd.getTime(); 
}) 

Затем используйте ng-if

ng-if="{{date == DateTime}}" 

Или вы можете распечатать результат в Формат даты также

ng-if="{{date == DateTime | date : "dd/MM/yyyy"}}" 
+0

Мне не хотелось использовать getTime(). Не хотелось, чтобы точность времени –

+0

да, но если вы хотите сравнить 'Date', то вы должны сравнить ее в течение долгого времени, чтобы получить меньше ошибок и совершенное сравнение –