AngularJSプロジェクトには、プロジェクト全体のいくつかの設定値をサーバーからajaxリクエストでフェッチする単一のconfigService
があります。つまり、ユーザーをモデレートする必要があるかどうかアカウントが有効になる前にサービスのajaxが終了するまでページ全体の負荷をAngularJSに遅らせる
設定に従って情報を表示するには、最初のページ全体の読み込みを、このajaxリクエストが完了するまで延期する必要があります。私のサービスは、次のようになります。だから、
angular.module('clientApp').factory('configService', function ($http) {
var configService = {};
var conf = {};
Object.defineProperty(configService, 'serverConfig', {
get: function() {
return conf;
}
});
$http.get('/api/config').success(function (data) {
conf = $.extend(conf, data);
});
return configService;
});
サービスはシングルトンであることから、これだけでなく、すべてのルート変更に、1時間ページのロード時に実行されます。
今、私は$q
の使用方法を知っていますが、私の問題は、このサービスが要求を完了するまで、すべての角度の実行を延期できますか?ほとんどの私の意見はconfigService.serverConfig
の値を必要とし、特定の動作のためにそれに依存しています - これを非同期で行い、すべてのコントローラにdefered.then()
を持っているのがベストアイデアのようには見えません。
ソリューションを見つけましたか? –
いいえ、回避策(ページの読み込み時に利用できるように設定オプションに依存していない)のみです。 Upvoteはチャンスを増やすかもしれない:) – Dyna