この質問で公開されている問題とよく似た問題があります ( AngularJS : Initialize service with asynchronous data )。私の違いは、angularAMD を使用してスクリプトを非同期的にロードしていることです。次の app.config で上記のアプローチに適合することはできません。
define(['angularAMD'], function (angularAMD) {
var app = angular.module('app', []);
app.config(['$routeProvider', function ($routeProvider) {
// some code here
}]);
app.run(['srvRules', function (srvRules) {
srvRules.getRules().then(function (result) {
// I need to bootstrap only after I get the rules from the server
});
}]);
return angularAMD.bootstrap(app);
});
編集1
これは私が達成しようとしているアプローチです: https://stackoverflow.com/a/21189057/2407203
編集2
詳細情報の追加: バックエンドとして webapi があります。これは、アプリケーションのセットアップに必要なあらゆる種類のビジネス ルールを提供するレガシー システムです。現時点で提供されている主な情報は次のとおりです。
- $translateProvider( http://angular-translate.github.io ) を使用して、辞書に現在のカルチャを動的に読み込みます。すべてのテキストは、この辞書から取得する必要があります。
- すべてのルート変更を監視し、返されたルールに基づいてアクセスを許可または制限するサービスがあります。
- ルールに基づいて、いくつかの情報を画面に配置する必要があります。これらの情報はすべて、最初の html のディレクティブ内にカプセル化されています。
- 一部の html コントロールは、ルールに基づいて表示される場合と表示されない場合があります。