有。價值())在services.js理解問題和在控制器使用它... 在以下示例中,聲明。價值(:AngularJS應用價值服務
.value("ScanDatas",{
scanData: {}
})
認爲一旦定義「SCANDATA」是在整個應用程序可用...在工廠使用它:
.factory("ScanService", ["ScanDatas","$cordovaBarcodeScanner", function (ScanDatas,$cordovaBarcodeScanner) {
var scan = {};
scan.scanBarCode = function(){
$cordovaBarcodeScanner.scan().then(function(datas){
scanData.collectedDatas.text = datas.text;
scanData.collectedDatas.format = datas.format;
scanData.collectedDatas.cancelled = datas.cancelled;
},function(error){
scanData.collectedDatas.error = error;
})
}
scan.getBarcodeData = function(){
return scanData;
};
return scan;
}])
然後希望在一個控制器來使用結果:
.controller("ajouterCtrl", ["$scope", "$ionicPopup", "$timeout", "ScanDatas", "ScanService" , "storageAreaService", function ($scope, $ionicPopup, $timeout, ScanDatas, ScanService, storageAreaService) {
"use strict";
$scope.storageAreas = storageAreaService.storageAreaList();
$scope.add = {}; // Initalise l'objet
var barcodeData = {}; // Données lues à partir du lecteur de code barre
$scope.scanBarCode = function(){
ScanService.scanBarCode();
};
//barcodeData = ScanService.getBarcodeData();
$scope.add.ean = scanData.collectedDatas.text;
}])
最後,調試返回scanData或收集的數據(不知道是什麼)未定義...
任何想法或建議?
THX
THX ...學習AngularJS是不容易,因爲我能想到......現在,探索承諾等來完成我的應用程序...也許有一個新的問題,如何推遲我的掃描方法填充視圖中的字段 –