我想根据关联用户的 graduation_year
有条件地显示或隐藏元素,并且 ng-show
和 ng-if
指令是无法按原样工作。
如果graduation_year
大于或等于当前年份(即用户处于“活跃”状态),则应显示该元素,如果小于当前年份,则应隐藏该元素。
在我尝试过的 View 中
<div data-ng-repeat="user in data.group.users">
<div ng-show="{{ user.graduation_year }} >= {{ date | date:'yyyy' }}">Active</div>
</div>
在 Controller 中
$scope.date = new Date();
但无论如何它都会将其视为错误,即使输出显示“2017 >= 2015”和“2014 >= 2015”(只是几个例子),所以我应该得到不同的结果。当我尝试 ng-if
时,无论如何它们都被视为 true。
最佳答案
您错误地使用了变量插值。
在 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()
}
}])
}
关于javascript - 比较 AngularJS 指令中的两个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999825/