我想根据关联的用户graduation_year
有条件地显示或隐藏元素,ng-show
和ng-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
时,无论如何都将它们视为真实。
答案 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()
}
}])
}