Ionic Angular 尝试 return json 数据的闭包
Ionic Angular Closure for trying to return json data
我有一个 Ionic 应用程序,我正在尝试 return 来自闭包内部的数据。控制台正在正确显示所有内容,但我似乎无法将数据正确获取到 return。我尝试了几种不同的变体,但没有成功。
$scope.callbackMethod = function (query) {
//var ritems= new Array();
var ritems;
Inventory.search(query, $scope.currentUser.token, $scope.currentUser.user_id, function(response) {
//console.log(JSON.stringify(response));
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
console.log(response.items);
ritems= response.items;
}
else
{
$ionicLoading.hide();
//console.log(response.message);
return $scope.errorMessage = response.message;
}
});
console.log(ritems);
return ritems;
};
还有这个:
$scope.callbackMethod = function (query) {
//var ritems= new Array();
var ritems = Inventory.search(query, $scope.currentUser.token, $scope.currentUser.user_id, function(response) {
//console.log(JSON.stringify(response));
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
console.log(response.items);
return response.items;
}
else
{
$ionicLoading.hide();
//console.log(response.message);
return $scope.errorMessage = response.message;
}
});
console.log(ritems);
return ritems;
};
被 return 编辑到脚本的 json 是:
{"success":true,"items":[{"id":"1","0":"1","name":"Product 1","1":"Product 1","ref_id":"","2":""},{"id":"2","0":"2","name":"Product 2","1":"Product 2","ref_id":"","2":""}],"message":""}
有什么想法吗?非常感谢!!
您可以按照此方法解决您的问题
var cbm = function (query) {
var defer = $q.defer();
Inventory.search(query, $scope.currentUser.token,$scope.currentUser.user_id, function(response) {
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
defer.resolve(response.items) ;
}
else
{
$ionicLoading.hide();
defer.reject(response.message);
}
});
return defer.promise;
};
在调用时,您可以调用回调方法,例如
$scope.callbackMethod = function (query){
return cbm(query).then(function(data){ return data;});
}
我有一个 Ionic 应用程序,我正在尝试 return 来自闭包内部的数据。控制台正在正确显示所有内容,但我似乎无法将数据正确获取到 return。我尝试了几种不同的变体,但没有成功。
$scope.callbackMethod = function (query) {
//var ritems= new Array();
var ritems;
Inventory.search(query, $scope.currentUser.token, $scope.currentUser.user_id, function(response) {
//console.log(JSON.stringify(response));
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
console.log(response.items);
ritems= response.items;
}
else
{
$ionicLoading.hide();
//console.log(response.message);
return $scope.errorMessage = response.message;
}
});
console.log(ritems);
return ritems;
};
还有这个:
$scope.callbackMethod = function (query) {
//var ritems= new Array();
var ritems = Inventory.search(query, $scope.currentUser.token, $scope.currentUser.user_id, function(response) {
//console.log(JSON.stringify(response));
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
console.log(response.items);
return response.items;
}
else
{
$ionicLoading.hide();
//console.log(response.message);
return $scope.errorMessage = response.message;
}
});
console.log(ritems);
return ritems;
};
被 return 编辑到脚本的 json 是:
{"success":true,"items":[{"id":"1","0":"1","name":"Product 1","1":"Product 1","ref_id":"","2":""},{"id":"2","0":"2","name":"Product 2","1":"Product 2","ref_id":"","2":""}],"message":""}
有什么想法吗?非常感谢!!
您可以按照此方法解决您的问题
var cbm = function (query) {
var defer = $q.defer();
Inventory.search(query, $scope.currentUser.token,$scope.currentUser.user_id, function(response) {
if(response.success == true)
{
$ionicLoading.hide();
$scope.requestmodal.hide();
defer.resolve(response.items) ;
}
else
{
$ionicLoading.hide();
defer.reject(response.message);
}
});
return defer.promise;
};
在调用时,您可以调用回调方法,例如
$scope.callbackMethod = function (query){
return cbm(query).then(function(data){ return data;});
}