2017-01-24 3 views
0

ich einJavaScript Prototypfunktion ignoriert wird

mit bin "Kann lesen Eigenschaft 'bind' nicht von undefined"

Thema in meinem Javascript-Objekt. Wie kann ich die Ausführung der Bindung erzwingen?

es passiert, wenn ich diese Funktion aufrufen:

function ViewportDatasource(mockServer) { 
     this.mockServer = mockServer;   
     this.connectionId =this.mockServer.connect(this.eventListener.bind(this)); 
    } 

auch wenn eventListener wurde in einem Prototyp-Funktion

ViewportDatasource.prototype.eventListener = function (event) { 
     switch (event.eventType) { 
      case 'rowCountChanged': 
       this.onRowCountChanged(event); 
       break; 
      case 'rowData': 
       this.onRowData(event); 
       break; 
      case 'dataUpdated': 
       this.onDataUpdated(event); 
       break; 
     } 
    }; 

Was richtig definiert ist, kann ich tun?

Daniels Frage zu antworten, wird die Instanz hier genannt:

function setRowData($http) { 
     // set up a mock server - real code will not do this, it will contact your 
     // real server to get what it needs 
     var mockServer = new MockServer(); 
     $http.get('data.json').then(function(response){ 
      mockServer.init(response.data); 
     }); 

     var viewportDatasource = new ViewportDatasource(mockServer); 
     table.api.setViewportDatasource(viewportDatasource); 
     // put the 'size cols to fit' into a timeout, so that the scroll is taken into consideration 
     setTimeout(function() { 
      table.api.sizeColumnsToFit(); 
     }, 100); 
    } 

wird diese Funktion nach dem ag-Rasterobjekt in Anrufern ausgeführt ist bereit, sollte

+0

Wie konstruieren Sie Ihre Instanz? und wann? –

Antwort

0
function ViewportDatasource(mockServer) { 
    //the this operator here is undefined. function is not of object. 
    this.mockServer = mockServer;   
    this.connectionId =this.mockServer.connect(this.eventListener.bind(this)); 
} 

Der dieser Operator verwendet werden Nur wenn Sie die Funktion an ein Objekt binden, ist der Operator in diesem Fall sinnvoll. Im obigen Beispiel nicht.

+0

Wie kann ich das korrigieren? Wie kann ich dann auf das Objekt selbst verweisen? –