admin管理员组文章数量:1355564
I try to get data from database using factory. I have a problem, because I don't know how to get data from object which was returned from factory. This is what I received when I used console.log() function:
>d {$$state: Object}
$$state: Object
status: 1
value: Array[1]
__proto__: Object
__proto__: Object
This is my factory code:
application.factory('Database', ['$http', function($http) {
var databaseFactory = {};
databaseFactory.get = function(query) {
return $http.get("getData.php", {params: {'query': query}}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.then(function (response) {
databaseFactory.returnedData = response.data;
return databaseFactory.returnedData;
})
}
return databaseFactory;
}]);
And here is my controller code:
registration.controller('RegistrationController', ['$scope', 'Database', function($scope, Database) {
$scope.posts = Database.get("SELECT * FROM `group`");
console.log($scope.posts);
}]);
I try to get data from database using factory. I have a problem, because I don't know how to get data from object which was returned from factory. This is what I received when I used console.log() function:
>d {$$state: Object}
$$state: Object
status: 1
value: Array[1]
__proto__: Object
__proto__: Object
This is my factory code:
application.factory('Database', ['$http', function($http) {
var databaseFactory = {};
databaseFactory.get = function(query) {
return $http.get("getData.php", {params: {'query': query}}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.then(function (response) {
databaseFactory.returnedData = response.data;
return databaseFactory.returnedData;
})
}
return databaseFactory;
}]);
And here is my controller code:
registration.controller('RegistrationController', ['$scope', 'Database', function($scope, Database) {
$scope.posts = Database.get("SELECT * FROM `group`");
console.log($scope.posts);
}]);
Share
Improve this question
asked Aug 12, 2015 at 19:51
confused7confused7
511 gold badge1 silver badge5 bronze badges
3 Answers
Reset to default 2You should pass a callback function from controller and execute it in your factory once the AJAX response is received. You can update your code to following.
Factory
application.factory('Database', ['$http', function($http) {
var databaseFactory = {};
databaseFactory.get = function(query, callback) {
return $http.get("getData.php", {params: {'query': query}}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}})
.then(function (response) {
databaseFactory.returnedData = response.data;
callback(databaseFactory.returnedData);
})
}
return databaseFactory;
}]);
Controller
registration.controller('RegistrationController', ['$scope', 'Database', function($scope, Database) {
Database.get("SELECT * FROM `group`", function(resp){
$scope.posts = resp;
console.log($scope.posts);
});
}]);
It's returning a promise, and you need to handle it this way
In your controller add this:
getSomething.getBla().then(function(response) {
console.log(response.data)
});
for more information: 'http://andyshora./promises-angularjs-explained-as-cartoon.html'
This worked in my case: result.$$state.value.
Sample Code: Controller:
promise = getConfigService.getAccount(protocol+hostName+port);
promise
.then(
function (result) {
var baseUrlTemp = result.$$state.value.baseURL;
console.log("BaseURL:"+baseURLTemp)
}
Ouput: BaseURL: www.oneindia.
本文标签: javascriptHow to get data from state ObjectStack Overflow
版权声明:本文标题:javascript - How to get data from {$$state: Object}? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743946842a2566563.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论