附件中的SAPUI5 this.getView已完成

附件中的SAPUI5 this.getView已完成,sapui5,Sapui5,我正在将数据加载到我的模型中,并已附加一个AttacherRequestCompleted。在这里,我想为一个字段设置一个值,但它返回这个值。getView不是一个函数。这一切都是在一段时间内发生的: 我的代码如下所示: var intervalId = setInterval(this.readRfid.bind(this), 3000); readRfid: function() { var oRfidModel = new sap.ui.model.xml.XMLModel();

我正在将数据加载到我的模型中,并已附加一个AttacherRequestCompleted。在这里,我想为一个字段设置一个值,但它返回这个值。getView不是一个函数。这一切都是在一段时间内发生的: 我的代码如下所示:

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

此实例未指向控制器。 您可能需要将上下文绑定到已传递给
attachRequestCompleted
的回调函数

正如您所看到的,您可以向该方法传递一个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);
会有用的。 如果这对您没有帮助,您可以将上下文添加到回调