【发布时间】:2016-03-20 02:15:07
【问题描述】:
我对 angularJS 不太熟悉,并且在尝试使用 http.get() 时遇到了麻烦。我正在完成 QR 扫描,然后从 QR 码接收到的文本将被放入我的 url。我收到的问题是 http.get() 在扫描完成之前正在执行。因此返回“错误”。我怎样才能做到这一点,以便 http.get(url) 仅在 $scope.QRScan() 函数完成后执行。
$scope.QRscan(); /// Want to finish first
var params = "?number=" + $scope.QRText;
params += "&action=ci";
var url = "http://test/test.php" + params;
var promise = $http.get(url);
promise.then(
function(payload) {
var r = payload.data;
if (r.status.toString() == '1') {
var alertPopup = $ionicPopup.alert({
title: ' successful ',
});
} else {
var alertPopup = $ionicPopup.alert({
title: 'Error',
});
};
});
QRScan()
$scope.QRscan = function () {
$cordovaBarcodeScanner.scan().then(function (qrData) {
}, function (error) {
var alertPopup = $ionicPopup.alert({
title: 'There was an error scanning the QR code.',
});
});
$scope.QRText = qrData.text;
};
【问题讨论】:
-
这个 $scope.QRscan() 是返回一个承诺,还是接受一个回调函数? node.js 是非阻塞的,意味着不保证 $scope.QRscan() 会在 var params = "?number=" + $scope.QRText; 之前完成您必须使用回调或等待承诺解决
标签: javascript angularjs get ionic-framework