javascript - 比较 AngularJS 指令中的两个整数

标签 javascript angularjs angularjs-directive ng-show angular-ng-if

我想根据关联用户的 graduation_year 有条件地显示或隐藏元素,并且 ng-showng-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/

相关文章:

javascript - 输入小于 100px 时换行,显示 flex

javascript - 为什么我在 JavaScript 中的计算中未定义?

javascript - 空文本输入框的值是多少?

javascript - 语法错误: Token '21' is an unexpected token at column 12 of the expression [2013-08-28 21:10:14] starting at [21:10:14]

angularjs - Angular ,在指令中,将带有ng模型的元素添加到模板中

javascript - 如何防止 jQuery 在隐藏元素之前加载修改后的内容?

javascript - 初学者 HTML5 path/to/jsFile.无法加载脚本?

javascript - 如何创建包含多个输入控件的自定义 Angular Directive(指令)?

javascript - 在 ng-src 之后运行指令代码

javascript - ng-click 没有在 angularjs 中触发?