0
我有一个使用angular.js
在cordova
中编写的应用程序。Cordova`barcodeScanner`将结果返回给控制器
在角度控制器中,我从工厂调用扫描方法,该方法应该扫描QR码并将结果返回给控制器。
下面的代码管理开始扫描插件,但不返回结果回控制器。
这里最好的办法是什么?
谢谢:-)
app.controller("LoggerController", ["$scope", "$location", qrReaderFactory", "$window", function ($scope, $location, qrReaderFactory, $window) {
$scope.$on('$viewContentLoaded', function() {
qrReaderFactory.scan("logger").then(function (result) {
$window.alert("We got a barcode\n" +
"Result: " + result.text + "\n" +
"Format: " + result.format + "\n" +
"Functionality: " + functionality + "\n" +
"Cancelled: " + result.cancelled);
},
function (error) {
$window.alert("Scanning failed: " + error);
}
);
});
}]);
app.factory("qrReaderFactory", ["$http", "$q", "$window", function ($http, $q, $window) {
function scan(functionality) {
var deferred = $q.defer();
cordova.plugins.barcodeScanner.scan(
function (result) {
deferred.resolve(result);
},
function (error) {
deferred.reject(error);
}
);
return deferred.promise;
}
}