コントローラーに挿入される AnguarJS サービスに REST API をラップしました。かなり標準的ですよね。ここで、そのサービスが 401 応答をインターセプトし、何らかの方法でログアウトまたは再ログイン プロンプトなどをトリガーするようにしたいと考えています。問題は、そのサービスがどのスコープにもアクセスできないことです。そのエラーをブロードキャストする最良の方法は何ですか? 私はいくつかのアイデアを思いつきましたが、私はAngularが初めてで、誰かがこれを行う「Angular」の方法を教えてくれるかどうか疑問に思っていますか?
1) サービスを、AppCtrl がリッスンできるイベント プールとして機能させることができます。しかし、これは少し複雑すぎるようです。そう:
myService.on('logout', function() {
$scope.isLoggedIn = false;
});
2) $rootScope をサービスに挿入し、サービスをisLoggedIn
直接変更できます。しかし、これは明らかに間違っているようです。サービスがデータを処理し、コントローラーがスコープを制御し、ディレクティブが dom をいじる場所を明確に区別したいと思います。
3) 私のすべてのコントローラーは、拒否された promise を監視し、その理由が 401 エラーである場合は、$scope に到達しisLoggedIn
て false に設定することができますが、このオプションは明らかに最悪です。
何か助けはありますか?
ありがとう。