Javascript 比较AngularJS指令中的两个整数

Javascript 比较AngularJS指令中的两个整数,javascript,angularjs,angularjs-directive,ng-show,angular-ng-if,Javascript,Angularjs,Angularjs Directive,Ng Show,Angular Ng If,我想根据相关用户的毕业年份和ng show和ng(如果指令不能正常工作)有条件地显示或隐藏元素 如果毕业年大于或等于当前年(即用户处于“活动状态”),则应显示该元素,如果小于当前年,则隐藏该元素 在我尝试过的观点中 <div data-ng-repeat="user in data.group.users"> <div ng-show="{{ user.graduation_year }} >= {{ date | date:'yyyy' }}">Act

我想根据相关用户的
毕业年份
ng show
ng(如果
指令不能正常工作)有条件地显示或隐藏元素

如果
毕业年
大于或等于当前年(即用户处于“活动状态”),则应显示该元素,如果小于当前年,则隐藏该元素

在我尝试过的观点中

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

但不管怎样,它都认为这是错误的,即使输出显示为“2017>=2015”和“2014>=2015”(只是几个例子),所以我应该得到不同的结果。当我尝试使用
ng if
时,无论怎样,它们都被视为正确的。

大括号正在破坏你的代码

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

活跃的

您错误地使用了变量插值

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

此外,还将组合比较操作和筛选器。 这确实可行,但尽可能保持代码的视觉简单可能会对您有所帮助

试试这个:

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

你真的不需要这个卷曲的括号,你是对的。事实上,当有大括号时,它不起作用。事实上,它确实起作用:
ng show=“{{user.gradication_year>=(date | date:'yyyy')}”
-它只是不需要OK。我刚测试过的plunkr没有用。不管怎样,有一个答案,它是有效的,所以现在我要远离这个…:事实上,PYou可以将compare与过滤器返回的结果相结合——就像另一个答案所建议的那样,只需要适当的括号。所以,如果你的意思是相反的,这将是一个错误的答案statement@NewDev每天学习新的东西,谢谢:)编辑以反映这些新知识
<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()
    }
 }])
}