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作為引數呼叫查詢商家的方法,即可實作!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19325.html
標籤:Java EE
上一篇:ECP框架主要使用哪些技術
