Angular.js-需要使用服务进行回调
Angular.js - callback needed using service
我有一个设置,其中有一个获取项目列表的服务,一个对该列表执行操作的控制器,以及一个迭代并显示每个项目的视图。
问题是,我的项目是指向RSS提要的链接,在控制器中,我想解析这些RSS提要,并设置视图要处理的模型数据。
现在,还需要对建模进行更多的修改(我需要对实际的RSS提要内容进行建模),但我的第一个问题是,服务获取的数据在我的控制器中是不可修改的(因为调用还没有完成,我想在我尝试访问它时)。基本上,如果我将它写入控制台,它只是一个空数组。
因此,我需要知道一旦服务调用完成,如何触发控制器中的数据操作。
谢谢!!//Joakim
服务代码:
angular.module('itemfeedServices', ['ngResource']).
factory('Item', function($resource){
return $resource('items/:itemId.json', {}, {
query: {method:'GET', params:{itemId:'items'}, isArray:true}
});
});
控制器代码:
function ItemListCtrl($scope, Item) {
$scope.items = Item.query();
console.log($scope.items); // gives []
}
基本上,我认为您想要回调?文件上写着:
The action methods on the class object or instance object can be invoked with the following parameters:
HTTP GET "class" actions: Resource.action([parameters], [success], [error])
non-GET "class" actions: Resource.action([parameters], postData, [success], [error])
non-GET instance actions: instance.$action([parameters], [success], [error])
此处
因此,使用:
Item.query({}, function() {
//you callback
});
应该起作用。
虽然回调可以工作,但这不是Angular的方法。查看promise模式和Angular自己的实现$q
相关文章:
- 在AngularJS服务中使用$http回调
- 在$q服务中捕获拒绝而不触发成功回调
- $http服务未触发成功或错误回调
- 将web服务回调的结果绑定到Javascript中的调用函数
- AngularJS Protractor:正在等待服务回调
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 如何在Angular中设置异步HTTP服务的回调,以便在不定义数组的情况下在控制器中填充数组
- 如何处理AngularJS服务中的回调
- 如何访问回调函数之外的异步angularjs服务数据
- 服务回调中的KendoUI网格服务器动态列绑定
- 回调函数不会在使用 $timeout 的服务中只调用一次
- 如何为方向服务编写回调函数
- 为什么无法在 Jquery/ajax 调用中获取对 RESTful 服务的成功回调
- 如何使用角度休息服务设置超时回调事件
- Angularjs:配置使用提供程序中服务的回调的好方法
- AngularJS:在回调中设置私有服务变量
- Angular JS从服务和Http回调方法返回数据
- 回调如何在 AngularJS 调用 REST 服务中工作
- 角服务在回调函数中部分可用
- 使用AngularJS中的promise管理来自控制器的服务回调