ルートに基づいてコントローラーの特定の依存関係を解決できることはわかっています。ただし、常に解決したいサービスがあります。現在のユーザーです。
このサービスは基本的に、現在のユーザー (url は のようなもの/api/user/me
) のサーバーへの get 要求を実行し、ユーザー ID、名前などを含むオブジェクトを返します。次のようにします。
CurrentUser.getCurrentUser().then(function(user) {
// use user.id here
});
すでにロードされているデータのネストとコールバックの余分な不要なレイヤーを作成します。約束を待たずにどこでも使用できるように、ユーザーをグローバルにプリロードできる良い方法はありますか?
上記でリンクしたルート解決のラインに沿ったものですが、すべてのルートとおそらくサービスでも機能するはずです。
私は次のような結果を想像します:
// somewhere
AlwaysResolveThisBeforeDoingSomething(UserService.resolve);
// In my controller
.controller('CurrentUserCtrl', function ($scope, $http, CurrentUser) {
// CurrentUser is an initialized user containing id, name etc.