0

我想根据关联的用户有条件地显示或隐藏一个元素,graduation_year并且ng-showandng-if指令没有按原样工作。

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

在我尝试过的视图中

<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();

但无论如何它都将其视为错误,即使输出显示“2017 >= 2015”和“2014 >= 2015”(只是几个例子),所以我应该得到不同的结果。当我尝试ng-if时,无论如何它们都被视为真实。

4

2 回答 2

1

花括号正在破坏您的代码。

<div data-ng-repeat="user in data.group.users">    
  <div ng-show="user.graduation_year >= (date | date:'yyyy')">Active</div>
</div>
于 2015-03-12T00:18:20.777 回答
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()
    }
 }])
}
于 2015-03-12T00:19:57.547 回答