Ergebnis 1 bis 6 von 6
  1. #1
    freezly ist offline Grünschnabel
    registriert
    13-11-2014
    Beiträge
    3

    Aufruf von Function klappt nicht

    Hallo Community,

    ich habe ein Problem mit dem Aufrufen von einer Function innerhalb einer Klasse:
    Code:
    function SiteRenderer(json) {
    	this.json = json;
    
    	this.render = function() {
    		if (typeof (this.json) == 'undefined')
    			throw 'Renderer: JSON is undefined';
    
    		this.changeSiteCaption();
    		this.renderTables();
    	}
    
    	this.renderTables = function() {
    		if (typeof (this.json.tables) != 'undefined') {
    			this.json.tables.map(this.createTable);
    		}
    	}
    
    	this.changeSiteCaption = function() {
    		if (typeof (this.json.caption) != 'undefined') {
    			$('div#headerLeft h2').html(this.json.caption);
    		}
    	}
    
    	this.createTable = function(table) {
    		var columnHeader = this.createColumnHeader(table.columns);
    	}
    
    	this.createColumnHeader = function(columns) {
    		var list = [];
    		columns.map(function(item) {
    			if (columns[i].visible) {
    				list[list.length] = {
    					'field' : item.field,
    					'headerText' : item.headertext
    				}
    			}
    		});
    		return list;
    	}
    }
    Ich rufe den ganzen Spaß so auf:
    Code:
    var renderer = new SiteRenderer(data); // Render complete Site
    		renderer.render();
    Firefox Console meldet mir in Zeile var columnHeader = this.createColumnHeader(table.columns); "TypeError: this.createColumnHeader is not a function". Was mache ich verkehrt? Der Aufruf von renderTables() aus render() funktioniert doch auch.


    PS: createTable() habe ich eingekürzt ... mit "var columnHeader" will ich später weiter arbeiten.

  2. #2
    rico2009 Guest

    AW: Aufruf von Function klappt nicht

    Zitat Zitat von freezly Beitrag anzeigen
    Firefox Console meldet mir in Zeile var columnHeader = this.createColumnHeader(table.columns); "TypeError: this.createColumnHeader is not a function". Was mache ich verkehrt?
    Naja, dein "this" bezieht sich dort auf die aktuelle Funktion, nicht auf die createColumnHeader Funktion.

    Ich würde dir empfehlen, ein var me = this; am Anfang der Klasse zu schreiben und dann alle Funktionen mit dem me. aufzurufen. Dann passiert sowas idR nicht.

  3. #3
    freezly ist offline Grünschnabel
    registriert
    13-11-2014
    Beiträge
    3

    AW: Aufruf von Function klappt nicht

    OK. Das scheint zu funktionieren ...Danke.
    Allerdings verstehe ich nicht, warum es an anderer Stelle funktioniert und hier nicht.

  4. #4
    j-l-n Guest

  5. #5
    rico2009 Guest

    AW: Aufruf von Function klappt nicht

    Zitat Zitat von freezly Beitrag anzeigen
    Allerdings verstehe ich nicht, warum es an anderer Stelle funktioniert und hier nicht.
    Lass dir mal das "this" in der Funktion ausgeben und dann in der "createColumnHeader" auch mal. Du wirst sehen, dass das zwei verschiedene Ergebnisse zurück geben wird.

  6. #6
    freezly ist offline Grünschnabel
    registriert
    13-11-2014
    Beiträge
    3

    AW: Aufruf von Function klappt nicht

    OK. Danke

Ähnliche Themen

  1. Function durch externen URL Aufruf starten
    Von mercurio im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 13-02-2014, 11:42
  2. Antworten: 4
    Letzter Beitrag: 08-12-2010, 14:36
  3. function aufruf
    Von DerTunesier im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 22-02-2009, 17:50
  4. Antworten: 5
    Letzter Beitrag: 10-10-2008, 21:29
  5. Probleme mit Aufruf aus Function
    Von f.mue.ks im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 24-06-2008, 09:14

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •