引用的重复问题告诉我们如何使用ajax / post调用。我的问题是如何使用匿名函数返回的数据。
我正在使用jquery POST方法从mysql中获取一些数据。电话是:
<div class="item" ng-repeat="item in itemList">
<input type="checkbox" ng-model="item.checked" ng-change="itemChange(user)">
<label>{{item.name}}</label>
</div>
这工作正常,我得到了我需要的数组,qdata。
所以,如果我执行以下操作,我可以访问qdata:
$scope.itemChange = function(user){
var selectedCarsIds = $scope.itemList.filter((i) => i.checked).map(item => item.id)
//update cars array for specific user
user.cars = selectedCarsIds;
}
qdata是一个包含140行的二维数组,其值均为
但如果我尝试在之外使用qdata 这篇文章,qdata会显示为'undefined'。例如
$.post("/php/practice.php",{cat:catname}, function(xdata) {
qdata=JSON.parse(xdata);
});
如果我将警报放在电话会议之外,我什么也得不到。
我该如何解决这个问题?
答案 0 :(得分:1)
您的问题是qdata仅存在于您的函数范围内。
在函数
之外设置qdata变量 var qdata
$.post("/php/practice.php",{cat:catname}, function(xdata) {
qdata=JSON.parse(xdata);
});
或者让我们说你想把这些数据传递给另一个用它来做某事的函数。你可以这样做:
$.post("/php/practice.php",{cat:catname}, function(xdata) {
qdata=JSON.parse(xdata);
myFunction(qdata);
});
function myFunction(data){
alert(data[0]);
}