私のアプリケーションには、他のコントローラが仕事をするために使用するデータがあります。AngularJsアプリケーション全体で使用されているデータを読み込む方法は?
たとえば、サーバーへのREST呼び出しを行うには、ユーザーと他のエンティティが必要です。私はindexedDb
でREST-コールから受信したすべてのng-views (see index.html).
機能loadUser() and loadRequiredEntity()
ストア値のコントローラによって使用される基本的なデータをロードするのAppController (app.js)
を持っている瞬間
。
表示されているng-viewのすべてのコントローラ(see ng-view in index.html)
は、ロードされたデータをindexedDb
から読み取ります。それらにアクセスしようとするすべてのデータのNG-ビューのコントローラの前に
- んのAppController負荷:
私はこのアプローチにはいくつかの市長の問題があると思いますか?
loadUser() and loadRequiredEntity()
rest-callsを実行して約束を返すコールサービス(たとえばuserService)は、データ全体がロードされる前にAppControllerが終了するように設定されています。したがって、ng-viewsのコントローラは、そこに値が格納される前にindexedDbから読み始めます。
他のコントローラで使用するために必要な基本データをロードするにはどうすればよいですか? AngularJsコントローラは正しい選択ですか?
のindex.html:
<body ng-app="app" id="appBody" ng-controller="AppController as appCtrl">
<md-content id="content" ng-view=""></md-content>
</body>
app.ts:データへのアクセス
/// <reference path="../typings/tsd.d.ts" />
module app {
export class AppController {
static $inject = ['$log'];
private _LOG_PREFIX : string = 'AppController: ';
constructor(private $log: ng.ILogService) {
this.$log.info(this._LOG_PREFIX + 'started');
this.loadUser()
.then(this.loadRequiredEntity)
.then(this.markAsAuthenticated, this.handleLoadBasedataError);
}
...
}
}
正しい選択がありますが、主に意見に基づいています。 –