1

背景:私が取り組んでいるプロジェクトの一環として、ユーザー (以下のケースでは「アーティスト」と呼ばれます) は、一連の役割 (マネージャー、プロデューサー、エージェントなど) から 1 つまたは複数をオプションで選択できます。したがって、ユーザーが選択した役割に応じて、ページの特定の部分を表示または非表示にする必要があります。

例:ユーザーが自分のロールの 1 つとして「マネージャー」を選択した場合 (および「マネージャー」が選択されていない場合は非表示にする場合)、条件付きで div を表示するために次を使用しようとしましたが、うまくいきませんでした。代わりに ng-show ディレクティブで何を使用する必要がありますか?

<div class="manager_section" ng-show="data.artist.roles.name == 'Manager'">Sample Text Here</div>

注意: div は ng-show/ng-hide ディレクティブが適用されていなくても問題なく表示されるため、CSS の回答などを探しているわけではありません。ng-show/ng-hide によって提供される条件付きの側面を探しているだけです。また、ロールのデータがページにプルされていることがわかります。ページで次のコマンドを実行してテストしたところ、ユーザーが選択した各ロールの名前が正確に表示されたからです。

<div ng-repeat="role in data.artist.roles">{{ role.name }}</div>
4

1 に答える 1

1

任意の JavaScript コードを実行する必要がある場合は、コントローラー メソッドを使用できます。

例えば:

<div class="manager_section" ng-show="isAuthorized('Manager')">Sample Text Here</div>

angular.module('myApp', [])
                 .controller('AppCtrl',function(){
                    $scope.isAuthorized = function(role){
                        for(var i=0;i<$scope.data.artist.roles.length;i++){
                           if($scope.data.artist.roles[i].name === role) return true;
                        }
                        return false;
                    }
                 };
于 2014-10-20T21:19:33.920 に答える