2

JSP ページに次のような角度のあるアプリがあります。

ng-init="role='<%=String.valueOf(session.getAttribute("role"))%>'"

したがって、JSP がセッションから role 属性を取得すると、body タグは次のようになります。

<body ng-app="appName" ng-init="role='roleName'">

roleでこの変数にアクセスしたい$routeProvider

$scope私はそのようにapp.config関数に渡すことでそうしようとしました:

app.config(['$routeProvider', '$scope',
    function ($routeProvider, $scope) {
        $routeProvider
        .when('somePath' {
            ...
        })
        .when('someOtherPath' {
            ...
        })
        .otherwise({
            redirectTo: $scope.role == 'goodRole' ? 'somePath' : 'someOtherPath'
        });
}]);

しかし、その通りには通れない$scopeようです。

この方法でスコープ変数にアクセスする方法はありますか、またはこれを達成する別の方法はありますか?

4

2 に答える 2

1

いいえ、実行フェーズ (コントローラーの実行、ディレクティブのレンダリング、スコープのリンク) の前に構成フェーズ(サービスの作成と構成) が行われるため、お試しのようにはできません。

あなたの場合、おそらくグローバル変数を作成し、構成ブロックからアクセスしたいと思うでしょう。この場合、実際には多くのオプションはありません。

また、Angular アプリへのグローバル変数構成の注入に関するやや類似したトピックで提供したこの回答も確認してください。

于 2015-04-14T14:42:53.917 に答える