0

関連するユーザーに基づいて要素を条件付きで表示または非表示にしたいのですがgraduation_year、ディレクティブng-showng-ifディレクティブがそのままでは機能しません。

graduation_yearが現在の年より大きいか等しい場合 (つまり、ユーザーが「アクティブ」である場合) に要素を表示し、現在の年よりも小さい場合は非表示にします。

私が試したビューでは

<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」(ほんの数例) が表示されていても、それは false として扱われるため、異なる結果が得られるはずです。を試しng-ifてみたところ、どちらも真として扱われました。

4

2 に答える 2

1

中括弧はコードを壊しています。

<div data-ng-repeat="user in data.group.users">    
  <div ng-show="user.graduation_year >= (date | date:'yyyy')">Active</div>
</div>
于 2015-03-12T00:18:20.777 に答える
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()
    }
 }])
}
于 2015-03-12T00:19:57.547 に答える