3

Resolveは、promise の結果 (解決または拒否) を処理する条件付きロジックに関してテンプレートが表示されないようにするための興味深いプロパティです。

私は自分のアプリケーションでそれを使用します。概念的なサンプルは次のとおりです。

.config(['$routeProvider', 'securityAuthorizationProvider',
        function ($routeProvider, securityAuthorizationProvider) {
              $routeProvider.when('/test', {
                  templateUrl: '/myCorrespondingView.tpl.html',
                  controller: 'MyCorrespondingCtrl',
                  resolve: securityAuthorizationProvider.requireAuthenticatedUser
              });
        }])

したがって、このコードは、解決され/myCorrespondingView.tpl.htmlた場合にのみコンテンツを表示することを期待していますsecurityAuthorizationProvider.requireAuthenticatedUser(promise term)。

http://myApp.com/test私の期待は次のとおりです。この約束がresolve部分的に拒否された場合、URLを変更したくありません。理由は簡単です。拒否ロジックがユーザーを現在のページに移動させることである場合、以前のコントローラーを無駄にリロードしたくありません(したがって、この後者へのリダイレクトが必要です)。

resolveソースで条件付きロジックをシフトする以外のプロパティでこれを達成する効率的な方法はありますか?つまり、前のコントローラーに移動しますか?

4

2 に答える 2

0

私はしばらく前に同様の問題を扱っていました。私の解決策は、ユーザーをログインページにリダイレクトすることでした-ユーザーがログインしていない場合、認証プロバイダー(あなたの場合はsecurityAuthorizationProvider.requireAuthenticatedUser)でユーザーが来ているページを使用できます.

于 2015-03-28T16:47:14.650 に答える