我成功了。這是我的新代碼,如果它可以幫助某人:
//create the promise
function getCustomersRequest(lastName, firstName, address, town, zipCode, skip, take)
{
var deferred = $q.defer();
var reqgetcustomers = $http({
url: 'api/customers/GetNbCustomer',
params: {
'lastName': lastName,
'firstName': firstName,
'address': address,
'town': town,
'zipCode': zipCode,
'skip': -1,
'take': -1
}
});
reqgetcustomers.success(function (dataResult) {
deferred.resolve(dataResult);
});
return deferred.promise;
}
//new method with promise
function GetListFiltered(lastName, firstName, address, town, zipCode, skip, take) {
var deferred = $q.defer();
var reqSearchCustomers = $http({
url: '/api/customers/GetFilteredList',
params: {
'lastName': lastName,
'firstName': firstName,
'address': address,
'town': town,
'zipCode': zipCode,
'skip': skip,
'take': take
}
});
reqSearchCustomers.success(function (dataResult) {
deferred.resolve(dataResult);
$scope.customers = dataResult;
});
var myPromise = getCustomersRequest(lastName, firstName, address, town, zipCode, skip, take);
myPromise.then(function (resolve) {
$scope.itemCount = resolve;
locker.put('itemCount', resolve);
locker.put('skip', ((locker.get('currentPage') - 1) * $scope.numPerPage));
var nbPage = Math.ceil(locker.get('itemCount')/$scope.numPerPage);
locker.put('nbPage', nbPage);
$scope.skip = locker.get('skip');
$scope.nbPage = locker.get('nbPage');
}
GetListFiltered(locker.get('lastName'), locker.get('firstName'), locker.get('address'), locker.get('town'), locker.get('zipCode'), $scope.skip, $scope.numPerPage);
我認爲nbPage是未定義的,因爲您沒有定義這個變量$ scope.numPerPage。 –
我只提出了我的請求,所以我的var numPerPage定義在請求之外。請求運行正常,它在api控制器中找到我的動作,但是我的代碼繼續而沒有等待請求的結果。 – JonathanTheBrosh