2017-01-24 9 views
0

Я сJavascript прототип функции игнорируется

«Не удается прочитать свойство„привязать“неопределенных»

вопрос в моем объектов JavaScript. Как я могу принудительно выполнить привязку?

это происходит, когда я называю эту функцию:

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

даже если eventListener правильно определены в функции прототипа

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; 
     } 
    }; 

Что я могу сделать?

Чтобы ответить на вопрос Даниила, экземпляр получает здесь называют:

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); 
    } 

Эта функция запускается на выполнение после того, как объект аг-сетки в вызывающей готов

+0

как вы строите свой экземпляр? и когда? –

ответ

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)); 
} 

этот оператор должен быть использован только когда вы привязываете функцию к объекту, в этом случае этот оператор имеет смысл. В приведенном выше примере это не так.

+0

Как это исправить? Как я могу ссылаться на сам объект? –

 Смежные вопросы

  • Нет связанных вопросов^_^