2017-04-10 5 views
0

私のモデルにデータをロードしていて、attachRequestCompletedが添付されています。そこには1つのフィールドに値を設定したいが、それはを返すthis.getViewは関数ではない。この全体のことは、インターバル内にある: 私のコードは次のようになります。SAPUI5 this.getView in attachRequestComple

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使用することはできませんか?どうすればそれを動作させることができますか? ありがとう、 チーム

答えて

1

thisインスタンスがコントローラを指していません。 おそらく、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

関連する問題