如何实现angular中service层一个方法在另一个方法调用完毕进行调用
呵呵小哥 2020-08-22 10:23:28 angular的前后端分离中,service层的默认方法是异步调用的,但是做商城项目时有一个需求:
我点击修改商家:需要先将商家查询出来,然后显示在页面进行修改,但是回显商家信息的controller和商家修改页面所属的不是一个controller,这在我页面绑定的时候就出现了问题:
我页面只能引入一个controller,所以我一开始将loginService引入到sellerController,这样子虽然可以调用获取到商家信息,但是调用时候显示商家的方法和页面初始化根据商家ID查询商家总是没有先后顺序,这个是不行的,必须先得到商家ID
网上实现angular的同步调用方法很多,但是无奈初学,也在不断探讨,今天我先用一种笨拙但是特别容易理解的方式将其实现先后调用!
//初始化查询商家信息
//初始化信息调用方法,在调用方法回调完毕之后将第二个调用的函数作为参数进行调用,可以实现异步调用
$scope.initSellerMess=function(){
$scope.searchLoginName($scope.findOne);
}
// 查询sellerId
$scope.searchLoginName=function(findOne){
loginService.loginName().success(
function(response){
$scope.loginName = response.loginName;
findOne($scope.loginName);
}
);
}
// 查询实体
$scope.findOne=function(loginName){
sellerService.findOne(loginName).success(
function(response){
$scope.entity= response;
}
);
}
如代码所示,页面初始化方法调用initSellerMess(); 然后调用查询商家ID的方法,将第二个要调用的方法作为参数传递进去,在searchLoginName()方法调用完毕以后,将商家ID作为参数调用查询商家的方法,即可实现!