代码之家  ›  专栏  ›  技术社区  ›  Andrew

比较AngularJS指令中的两个整数

  •  0
  • Andrew  · 技术社区  · 10 年前

    我希望根据关联的User的 graduation_year 以及 ng-show ng-if 指令无法正常工作。

    如果 毕业_年 大于或等于当前年份(即用户处于“活动”状态),如果小于当前年份则隐藏。

    在我尝试过的观点中

    <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如果 无论怎样,他们都被视为真实。

    2 回复  |  直到 10 年前
        1
  •  1
  •   JoshWillik alexpods    10 年前

    您错误地使用了变量插值。

    在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()
        }
     }])
    }
    
        2
  •  1
  •   HankScorpio    10 年前

    大括号破坏了你的代码。

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