如何从 barcodescanner 中获取 result.text 并用作数组

How to take the result.text from barcodescanner and use as an array

我正在尝试获取从 Cordova Barcode Scanner 返回的 result.text 并将要使用的数据字符串解析为数组,以便我可以在表单中填充输入字段。

这是我的示例代码:

document.addEventListener("deviceready", function() {
    $scope.scanMaterial = function() {
        $cordovaBarcodeScanner
            .scan()
            .then(function(result) {
                var myresult  = result.text;

                alert(myresult); 
            }, function(error) {
                console.log("An error has happened " + error);
            });
    };
}, false);

我得到的条码数据: W:966227, I:0253-0050-22, MFG:01/15, B:034, QTY:56, N:00034

我的最终结果是获取这串数据并获取它,这样我就可以填充以下变量:

var dataObj = {
            SessionId: SessionId,
            JobId: $stateParams.JobId,
            ManufactureDate: $scope.ManufactureDate,
            BatchCode: $scope.BatchCode,
            SKU: $scope.SKU,
            ManufactureOrigin: 'unknown',
            CreatedClient: $scope.CreatedClient,
            Latitude: $scope.lat,
            Longitude: $scope.long,
            Product: { Id : 1}
        };

        cfpLoadingBar.start();
            $http.post(baseUrl + 'Material/PostNewMaterial', dataObj)
                .success(function() {
                    alertsManager.addAlert('Success: You have successfully added material.', 'alert-success');
                    cfpLoadingBar.complete();
                    $scope.materialCollapsed = true;
                }).error(function(dataObj) {
                    alertsManager.addAlert('Failure Meesage: ' + JSON.stringify({dataObj:dataObj}), 'alert-danger');
                    cfpLoadingBar.complete();
                });
                $timeout(function(){
                    alertsManager.clearAlerts();
                }, 5000);
    };

这给出了所需的结果,并将 result.text 拆分为可用格式,然后可以将其发送回 API 服务器。

document.addEventListener("deviceready", function() {
    $scope.scanMaterial = function() {


        $cordovaBarcodeScanner
            .scan()
            .then(function(result) {

                var codeArray = result.text.split(',');
                $scope.SKU = codeArray[1].replace("I:", "").trim();
                $scope.controlNo = codeArray[0].replace("W:", "").trim();
                $scope.ManufactureDate = codeArray[2].replace("MFG:", "").trim();
                $scope.BatchCode = codeArray[3].replace("B:", "").trim();

                var dataObj = {
                    SessionId: SessionId,
                    JobId: $stateParams.JobId,
                    ManufactureDate: $scope.ManufactureDate,
                    BatchCode: $scope.BatchCode,
                    SKU: $scope.SKU,
                    ManufactureOrigin: 'unknown',
                    CreatedClient: new Date(),
                    Latitude: $scope.lat,
                    Longitude: $scope.long,
                    Product: { Id : 1}
                };

                $http.post(baseUrl + 'Material/PostNewMaterial', dataObj)
                    .success(function() {
                        alertsManager.addAlert('Success: You have successfully added material.', 'alert-success');
                        $state.go('^');
                    }).error(function(dataObj) {
                        alertsManager.addAlert('Failure Meesage: ' + JSON.stringify({dataObj:dataObj}), 'alert-danger');
                    });
                    $timeout(function(){
                        alertsManager.clearAlerts();
                    }, 5000);

            }, function(error) {
                console.log("An error has happened " + error);
            });
    };
}, false);