Bir hizmet kullanarak global olarak /api/login.json değerini kaydetmek istiyorum, ancak bir çeşit zamanlama sorunum olduğunu düşünüyorum. Denetleyicideki console.log deyimi, scope.login nesnesinin undefined olduğunu söyler.Köşeli fabrikada http hizmetinden veriler nasıl depolanır
Neyi eksik?
Teşekkürler!
Fabrika hizmeti:
myApp.factory('LoginFactory', ['$http', function($http){
this.data;
$http.get('/api/login.json').success(function(data) {
this.data = data;
});
return {
getData : function(){
return this.data;
}
}
}]);
Denetleyici: muhtemelen bu bağlamda this
anahtar kelimenin kullanılmasına kaçınmalıdır
myApp.controller('AccountsCtrl', ['$scope', 'Accounts', 'LoginFactory', function($scope, Accounts, LoginFactory){
$scope.login = LoginFactory.getData();
console.log('$scope.login: %o', $scope.login);
$scope.accounts = Accounts.index();
}]);
sorun olabilir bu anahtar kelimenin bağlam dışından get içinde farklı olmasıdır hiçbir veri değişken –
ben var'ing çalıştı sadece var neden ... almak veri değişkenini (var data = {};), ancak herhangi bir etkisi olmadı, şu anda sadece boş nesneyi alıyorum. – henrik242
elbette varsayı bu kadar basit değil, bu anahtar kelime her yerde kaldırmak ve başarı fonksiyonunun yerel değişkeninin adını değiştirmek zorunda –