猿问

angularjs中的多个服务同时多次如何调用?

在项目定义了两个服务,获取task和project,如果在controller中一起获取他们的数据然后进行赋值呢?目前我是通过
jstaskService.get({id:id},function(data1){
//...
projectService.get({id:id},function(data2){
//里面赋值的操作很长
...
})
})
请问大神们采用$q的方式应该如何写,还有我在很多地方会用到这个获取数据的操作,如何让他们复用呢?谢谢
牛魔王的故事
浏览 437回答 2
2回答

青春有我

可以在service中增加一个方法,是同时获取两个的就OK了,例如:js//someService中伪代码someService.getAll=function(id){varpmo=$q.all([taskService.get({id:id}),projectService.get({id:id})]);//根据情况,可以写下边的代码,也可以直接返回这个propmo.then(....)}

侃侃无极

taskService.sub1=function(post_data,callback){projectService.get(post_data,function(rsp){if(angular.isFunction(callback)){callback(rsp);}}}taskService.sub1({id:1},function(rsp){//里面赋值的操作很长});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答