Не видит переменную (Vue) [дубликат]

193
26 февраля 2019, 17:00

На данный вопрос уже ответили:

  • Потеря контекста вызова 5 ответов

Коллеги. Столкнулся с проблемой, что модуль декодирования баркодов не видит в себе переменные компонента, тем самым не получается записать результат. Как правильно сделать? Помогите пожалуйста =)

barcodeReader: function (event) {
        Quagga.decodeSingle({
            numOfWorkers: 0,
            src: URL.createObjectURL(event.target.files[0]),
            decoder: {
                readers: [
                    "code_128_reader",
                    "ean_reader",
                    "ean_8_reader",
                    "code_39_reader",
                    "codabar_reader",
                    "upc_reader",
                    "upc_e_reader",
                    "code_93_reader",
                ]
            },
        }, function (result) {
            if(result){
                if (result.codeResult) {
                    let types = {
                        codabar_reader:'CODABAR',
                        code_39_reader: 'CODE_39',
                        code_93_reader: 'CODE_93',
                        code_128_reader: 'CODE_128',
                        ean_8_reader: 'EAN-8',
                        upc_reader: 'UPC-A',
                        upc_e_reader: 'UPC-E'
                    };
                    this.form.qr = result.codeResult.code;
                    this.form.barcodeType = types[result.codeResult.format];
                } else {
                    alert("Не удалось просканировать баркод");
                }
            }else{
                alert("Баркод не обнаружен");
            }
        });
    },
Answer 1

Вынес функцию отдельно - все заработало)

barcodeReader: function (event) {
            Quagga.decodeSingle({
                numOfWorkers: 0,
                src: URL.createObjectURL(event.target.files[0]),
                decoder: {
                    readers: [
                        "code_128_reader",
                        "ean_reader",
                        "ean_8_reader",
                        "code_39_reader",
                        "codabar_reader",
                        "upc_reader",
                        "upc_e_reader",
                        "code_93_reader",
                    ]
                },
            }, this.barcodeResult);
        },
        barcodeResult(result) {
            if (result) {
                if (result.codeResult) {
                    let types = {
                        codabar: 'CODABAR',
                        code_39: 'CODE_39',
                        code_93: 'CODE_93',
                        code_128: 'CODE_128',
                        ean_8: 'EAN-8',
                        ean_13: 'EAN-13',
                        upc: 'UPC-A',
                        upc_e: 'UPC-E'
                    };
                    this.form.qr = result.codeResult.code;
                    this.form.barcodeType = types[result.codeResult.format];
                    console.log(result.codeResult.format);
                } else {
                    alert("Не удалось просканировать баркод");
                }
            } else {
                alert("Баркод не обнаружен");
            }
        },
READ ALSO
Как добавить событие на клик в Toggle Menu?

Как добавить событие на клик в Toggle Menu?

Как сделать так, чтобы при клике на пункт меню сработало событие закрытия этого меню?

165
IndexOf не находит элемент в массиве

IndexOf не находит элемент в массиве

Добавляю в массив элементы страницы (td), вывожу(consolelog(arr);)(пример):

200
Помогите нарисовать canvas!

Помогите нарисовать canvas!

Просьба помочь нарисовать canvasНеобходимо после сделать анимацию отрисовки этого canvas при скролле

194
Canvas второй цвет, удаление значения из массива

Canvas второй цвет, удаление значения из массива

Есть canvas с кругамиПроблемы в том, что круги мерцают(это из-за удаления объекта из массива), я вроде бы удаляю тот элемент, который надо и на секунду...

201