Как написать класс в файле JavaScript - PullRequest
0 голосов
/ 15 февраля 2019

Я получаю данные JSON из файла excel с классом в JavaScript, и я собираюсь создать этот класс, и мои данные будут напечатаны на экране в формате HTML.Большая часть того, что я написал, не сработала.Я получаю сообщение об ошибке при вводе класса JavaScript и создании объекта.

class ExcelModal {
    name : string;
    id : string;
    constructor(id, name) {
        this.name = name;
        this.id = id;
    }
}
function  ExcelToJSON () {
    var list = new ExcelModal();
    document.getElementById("upload").addEventListener("change", handleFileSelect, false);
    this.parseExcel = function(file) {
        var reader = new FileReader();
        reader.onload = function(e) {
            var data = e.target.result;
            var workbook = XLSX.read(data, {
                type: "binary"
            });
            workbook.SheetNames.forEach(function(sheetName) {
                // Here is your object
                var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
                var json_object = JSON.stringify(XL_row_object);
                list = JSON.parse(json_object);

                console.log( list );
                jQuery().val( json_object );

                list.forEach( function (obj){
                    $('#id).append('<input name="accesories" type="checkbox" value="'+obj.id+'"/> '+obj.name+'<br/>');
                });
            })
        };

        reader.onerror = function(ex) {
            console.log( ex);
        };

        reader.readAsBinaryString(file);
    };

};
function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object
    var xl2json = new ExcelToJSON();
    xl2json.parseExcel(files[0]);

}

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Возможно, вы используете Typescript с угловым.Убедитесь, что вы передаете только 2 аргумента экземпляру класса ExcelModal.

Если вы используете JavaScript, просто удалите ExcelModal свойства класса id & name (см. this для почему? ), поэтому ваш класс JS будет выглядеть как -

class ExcelModal {
    constructor(id, name) {
        this.name = name;
        this.id = id;
    }
}

let em = new ExcelModal(1, 'abcd');
console.log(em.name);
0 голосов
/ 15 февраля 2019

ExcelModal требуется 2 параметра при инициализации

var list = new ExcelModal('id', 'name');
...