私はAngularJSアプリケーションでファクトリを作成しました。これは、1つまたは複数の要素で削除が実行された後にサーバーからリフレッシュされたデータを取り込むために使用されます。リスト。
var myApp = angular.module('app');
myApp.factory('mvListRefresher', function($http) {
return {
refreshCourses : function() {
var list = new Array();
$http.get('/api/courses').then(function(response) {
console.log('got refreshed lists');
console.log(response.data);
list = response.data;
}, function(error) {
console.log('error in retreiving fresh lists');
console.log(error);
});
console.log('Displaying list of courses');
console.log(list);
if(list.length != 0) {
return list;
}
}
}
});
は私が
$scope.courses = mvListRefresher.refreshCourses();
を呼び出すことによって、私のコントローラのいずれかで、この工場を呼んでいる。しかし、私は、私はまったくの戻り値が届かないすなわち、空のリストを取得しています。私の工場の機能で、私はしかし、ライン正しくオブジェクトの完全なリストから成功のコールバックプリントの内側にある
console.log(response.data);
、ライン
console.log(list);
は常に空の配列を出力することを観察しました。私はこれがどのように起こっているのか分かりません。 AngularJSの約束は比較的新しいもので、それは非同期の方法とアーキテクチャです。親切に私を助けてください。それ以上の情報が必要な場合は、私はそれを提供します。私は平均を使ってアプリ全体をやった。前もって感謝します!