比较AngularJS指令中的两个整数

时间:2015-03-12 00:15:55

标签: javascript angularjs angularjs-directive ng-show angular-ng-if

我想根据关联的用户graduation_year有条件地显示或隐藏元素,ng-showng-if指令不按原样运行。< / p>

如果graduation_year大于或等于当前年份(即用户是&#34;活跃&#34;),则应显示该元素,如果小于当前年份,则隐藏该元素。

在我尝试过的视图中

<div data-ng-repeat="user in data.group.users">    
  <div ng-show="{{ user.graduation_year }} >= {{ date | date:'yyyy' }}">Active</div>
</div>

并在控制器中

$scope.date = new Date();

但即使输出显示&#34; 2017&gt; = 2015&#34;它也会将其视为假,无论如何。和&#34; 2014&gt; = 2015&#34; (只是几个例子),所以我应该得到不同的结果。当我尝试ng-if时,无论如何都将它们视为真实。

2 个答案:

答案 0 :(得分:1)

花括号破坏了你的代码。

<div data-ng-repeat="user in data.group.users">    
  <div ng-show="user.graduation_year >= (date | date:'yyyy')">Active</div>
</div>

答案 1 :(得分:1)

您未正确使用变量插值。

在ng-show中,您不需要{{和}}。

此外,您正在组合比较操作和过滤器。 这确实有效,但保持代码尽可能简单,可能对您有所帮助。

试试这个:

<div data-ng-repeat="user in data.group.users">    
  <div ng-show="isActive( user )">Active</div>
</div>

module.controller( 'UserCtrl', [ '$scope', function( $scope ){
    $scope.date = new Date()
    $scope.isActive = function( user ){      
        return user.graduation_year >= $scope.date.getFullYear()
    }
 }])
}