2017-04-10 58 views
0

我正在將數據加載到我的模型並附加了一個attachRequestCompleted。在那裏我想設置一個值爲一個字段,但它返回this.getView不是一個函數。這整個事情是一個區間內: 我的代碼如下所示:SAPUI5 this.getView attachRequestCompleted

var intervalId = setInterval(this.readRfid.bind(this), 3000); 

readRfid: function() { 

var oRfidModel = new sap.ui.model.xml.XMLModel(); 

    oRfidModel.loadData("http://localhost/xxxxxxx");  
    oRfidModel.attachRequestCompleted(function() { 

     var reader = oRfidModel.oData.children["0"].children["0"].innerHTML;  
     this.getView().byId("objHdr_det_id1").setNumberUnit(reader); 
}); 

我不能在函數中使用this.getView?我怎樣才能使它工作? 謝謝, Tim

回答

1

this實例不指向Controller。 您可能需要將上下文綁定到您傳遞給attachRequestCompleted的回調函數。

正如你所見,here你可以傳遞一個oListener到這個方法。

我猜是這樣的:

var oRfidModel = new sap.ui.model.xml.XMLModel(); 

    oRfidModel.loadData("http://localhost/xxxxxxx");  
    oRfidModel.attachRequestCompleted(function() { 

     var reader = oRfidModel.oData.children["0"].children["0"].innerHTML;  
     this.getView().byId("objHdr_det_id1").setNumberUnit(reader); 

    }, this); 

會工作。 如果這沒有幫助你,你可以bind上下文的回調。

+0

謝謝!我錯過了,它正在工作! – Tim