Я разрабатываю приложение sencha touch 2, которое использует плагин сканера штрих-кода телефонаGap.sencha touch2: сохранение данных из обратного вызова в контекст
В контроллере я написал функцию (doScan), которая обрабатывает событие касания кнопки просмотра сканирования. Если я нажимаю кнопку сканирования, приложение вызывает плагин сканера штрих-кода через window.plugins.barcodeScanner.scan.
В обратном вызове я хотел бы назвать контроллер, чтобы создать переменную, чтобы сохранить результат сканирования, но что я делаю, я получаю ошибку
Error in error callback: org.apache.cordova.barcodeScanner381646541 = TypeError: 'undefined' is not a function
, так как функция обратного вызова неспособный получить доступ к контексту. Как мне сделать, чтобы сохранить результат сканирования в контексте приложения? Спасибо.
/**
* Controller of the scan view
*/
Ext.define('MyApp.controller.ScanController', {
extend: 'Ext.app.Controller',
config: {
refs: {
scanButton: '#scanButton'
},
control: {
scanButton: {
tap: 'doScan'
}
}
},
/**
* Scans a barcode
*/
doScan: function(button, event) {
window.plugins.barcodeScanner.scan(
function(result) {
if (result.cancelled){
console.log("the user cancelled the scan")
} else {
console.log("scannerSuccess: result=" + result.text)
// I'd like to call the controller here
}
},
function(error) {
console.log("scanning failed: " + error.text)
}
)
},
doScanSuccess: function(result) {
}
});
Он работает: большое спасибо;) –