Ale*_*ner 9 state factory angularjs
所以我在服务器中有一组对象,我想在页面加载时填充ng-repeat.
我有一个工厂从服务器上的资源中获取列表,如下所示:
app.factory('objectArray', ['$http', function($http) {
// This is returning a $$state object
// instead of response.data...
return $http.post('/get_collection').then(function(response) {
console.log(response.data);
return response.data;
});
}]);
Run Code Online (Sandbox Code Playgroud)
在使用ui-router和state声明中的resolve属性之前,我已经有了这段代码.但是当将这个工厂直接注入我的控制器时,而不是获得response.data我得到一个$$状态对象.
我的控制器看起来像这样:
app.controller('applicationController', ['$scope', 'objectArray', function($scope, objectArray) {
$scope.array = objectArray;
console.log($scope.array);
}]);
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 10
$ http服务返回的内容(也就是objectArray服务)被称为promise.您可以通过注册将在数据可用时调用的回调函数来访问实际数据,即当对http请求的响应从服务器返回时:
objectArray.then(function(data) {
$scope.array = data;
});
Run Code Online (Sandbox Code Playgroud)
使用resolve时直接访问数据的原因是路由器在resolve函数返回promise时等待promise的解析.只有这样,它才会从promise中提取数据并将数据注入控制器.
| 归档时间: |
|
| 查看次数: |
14971 次 |
| 最近记录: |