10
AngularJS:非同期データでサービスを初期化する
非同期データで初期化したいAngularJSサービスがあります。このようなもの: myModule.service('MyService', function($http) { var myData = null; $http.get('data.json').success(function (data) { myData = data; }); return { setData: function (data) { myData = data; }, doStuff: function () { return myData.getSomeData(); } }; }); 何かが戻ってくるdoStuff()前に呼び出そうとするとmyData、nullポインタ例外が発生するため、これは明らかに機能しません。こことここで尋ねられた他のいくつかの質問を読んでわかる限り、私にはいくつかのオプションがありますが、どれも非常にきれいに見えません(おそらく私は何かを見逃しています): 「run」を使用したセットアップサービス 私のアプリを設定するときにこれを行います: myApp.run(function ($http, MyService) { $http.get('data.json').success(function (data) { MyService.setData(data); }); }); 次に、私のサービスは次のようになります。 myModule.service('MyService', function() …