Javascript и Jquery - получить определение класса в $ .get running - PullRequest
1 голос
/ 05 марта 2020

я не получаю подписку на бег. Есть класс для устройств. В этом классе я должен получить несколько переменных с запросом $ .get. Этот запрос будет получать данные из. php -скрипта, который собирает данные из MySQL -Database.

Ошибка: «this.device не является конструктором». Думаю, что это не найдено в объеме функций. Сомене может дать мне подсказку? Обычно я дома в C#, извините:)

Помощь?

var link150 = function() {  

    //Array zum Sammeln der Devices
    this.devices = []; 

    //#####################
    //Definition eines Devices
    //#####################

    function general_config() {
        this.database_id = "";
        this.devicename = "";
        this.hardware_id = "";
        this.serialnumber = "";
        this.ip = "";
        this.firmware_version = "";
        this.model = "";
        this.password = "";
    }

    this.device = function() {
        this.database_id = "";
        this.devicename = "";
        this.username = "";
        this.hardware_id = "";
        this.fqdn = "";
        this.kunde_id = "";
        this.location = "";
        this.ip = "";
        this.defaultPW = "";
        this.generalConfig = new general_config(); //TEST
        this.generalConfig.model ="EGX150";  //TEST
    }
    jQuery.ajaxSetup({async:false});

    //#####################
    //Devices aus Datenbank laden
    //#####################
    this.loadDevices = function() {
        _devices = [];
        $.get('php/abfrage.php', {action:'loadDeviceList'}, function(data){
            $.each(JSON.parse(data), function(i, item) {
                tmp = new this.device();
                tmp = {
                    id: item.id,
                    hardware_id: item.hd_id,
                    devicename: item.devicename,
                    fqdn: item.fqdn,
                    kunde_id: item.kunde_id,
                    location: item.kunde_location,
                    ip: item.ip,
                    lastsid: item.lastSID
                    };
                _devices.push(tmp);
            });
        })
        .always(function(){
            hide_loader();
        });
        this.devices = _devices;
    };

    //#####################
    //Geräte laden
    //#####################
    this.loadDevices();

    jQuery.ajaxSetup({async:true}); 
};

Ответы [ 2 ]

1 голос
/ 05 марта 2020

это работа?

var _self=this;
 this.loadDevices = function() {
        _devices = [];
        $.get('php/abfrage.php', {action:'loadDeviceList'}, function(data){
            $.each(JSON.parse(data), function(i, item) {
                tmp = new _self.device();
                tmp = {
                    id: item.id,
                    hardware_id: item.hd_id,
                    devicename: item.devicename,
                    fqdn: item.fqdn,
                    kunde_id: item.kunde_id,
                    location: item.kunde_location,
                    ip: item.ip,
                    lastsid: item.lastSID
                    };
                _devices.push(tmp);
            });
        })
        .always(function(){
            hide_loader();
        });
        this.devices = _devices;
    };
0 голосов
/ 05 марта 2020
this.device = function(database_id,devicename,...) {
        this.database_id = database_id;
        this.devicename = devicename;
        ...
    }
tmp = new _self.device(item.id,item.hd_id,...);
...