我使用cordova
在angular.js
中编写了一个应用程序。
在角度控制器中,我从工厂调用扫描方法,该扫描方法应该扫描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;
}
}
答案 0 :(得分:0)
抱歉,我的错误。
它实际上工作正常。
问题出在"Functionality: " + functionality + "\n" +
行,其中未分配“功能”。