私の質問は、Angular Google グループのこのトピックに基づいています。
$http を介してバックエンドから取得した基本データを保存するサービスを提供したいので、それらのデータを 1 回フェッチするだけで済みます。お気に入り、
var load = function() {
return $http.get(...).then(function(data) {
return data.user;
});
};
module.factory("userProvider", function() {
var user;
var getUser = function() {
if(!user) {
load().then(function(data) {
user = data;
});
}
return user;
};
return {
getUser : getUser
}
});
module.controller("UserController", ["userProvider", function UserController("userProvider") {
var user = userProvider.getUser();
// do something with user
}]);
問題は、Promise チェーンがコントローラーではなく userProvider で終了するため、データが返されていないため、このコントローラーを初めて使用するときにユーザーが未定義になることです。
このようなストレージ サービスを使用して、データを正しく返すにはどうすればよいですか? ありがとう!