首先点击第一个按钮通过http.get方法获取到一个值,并且已经能获取到。这个值要怎么给到第二个按钮的function中去。按钮顺序是先输入前三个条件点击第一个按钮,从后台拿到数据。再把这个数据拼接到第二个按钮按下所用的http.post方法的url中去,请问,这样能实现吗?
能实现
$scope.getValue1=function () { $http({ method: 'GET', url: '/someUrl' }).then(function successCallback(response) { $scope.valueOne=response.data; }, function errorCallback(response) { }); }; $scope.getValue2=function () { if($scope.valueOne){ $http({ method: 'GET', url: '/someUrl2?valueOne='+$scope.valueOne }).then(function successCallback(response) { $scope.valueTwo=response.data; }, function errorCallback(response) { }); }else{ alert("please click button one first.") } };
Http.get请求到的数据存到一个全局对象里保存,http.post再调用对象,success方法中销毁对象即可
其实就是闭包的原理..在设置两个按钮事件处理的相同作用域中定义一个变量temp, 把第一个按钮事件处理的回调函数中get获取到的值赋值给变量temp, 然后在第二个按钮事件处理的回调函数中取得temp值post出去..
如果两个异步请求之间有数据依赖的话,建议用promise处理,防止点击第二次按钮时,第一次请求的数据还没返回
能实现
其实就是闭包的原理..
在设置两个按钮事件处理的相同作用域中定义一个变量temp, 把第一个按钮事件处理的回调函数中get获取到的值赋值给变量temp, 然后在第二个按钮事件处理的回调函数中取得temp值post出去..
如果两个异步请求之间有数据依赖的话,建议用promise处理,防止点击第二次按钮时,第一次请求的数据还没返回