如何在回调中调用this.getView()

时间:2016-03-17 17:35:01

标签: javascript sapui5

我想用按钮改变紧凑的密度。

onInit: function () {
  this.getView().addStyleClass("sapUiSizeCompact");
},

运作良好。如果我在一个按钮中更改它,它就不起作用。

onOpenDialog: function (oEvent) {
  var oDialog1 = new Dialog();
  // ...
  oDialog1.addButton(new Button({
    text: "OK",
    press: function () {
      // How can I point to the view from inside this function?
    }
  }));
  oDialog1.open();
},

如何从功能内部指向视图?

1 个答案:

答案 0 :(得分:1)

我很惊讶你不得不问,因为它是基本的Javascript,真的......

自从press调用oToggleButton后,this关键字现在包含对oToggleButton的引用,控制器(因此为什么getView()方法失败)。在内部函数中搜索“此关键字”以获取更多信息。

要解决此问题,只需在内部函数外添加对此的引用:

var that = this;

并在您的内部函数中,改为使用引用:

that.getView().addStyleClass("sapUiSizeCompact");