在Fiori Launchpad标头事件的事件处理程序中获取oData

时间:2018-01-11 14:25:49

标签: sapui5

当用户点击Fiori Launchpad中的后退按钮时,我想检查数据更改。我有以下代码

onAfterRendering: function() {
        sap.ui.getCore().byId("backBtn").attachPress(this, function(oEvent) {
            oEvent.preventDefault();
        }); 
}

在函数中我想访问主控制器的oData和其他变量。但是,当我按下后退按钮时,“this”对象是标题控件的视图。

如何获取页面内容的视图,还可以访问与内容视图关联的控制器的oData和其他参数。

2 个答案:

答案 0 :(得分:0)

为了访问当前上下文,您必须在该特定上下文中调用事件处理函数,因此需要对该函数进行绑定。

onAfterRendering: function() {
        sap.ui.getCore().byId("backBtn").attachPress(this, function(oEvent) {
            oEvent.preventDefault();
        }.bind(this)); 
}

答案 1 :(得分:0)

如果使用sap.m.Page是一个选项,则可以使用navButtonPress内置事件:

View.xml

<mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc">
    <Page navButtonPress="onNavBack">
    ...

Controller.js

    onNavBack: function(oControlEvent) {
        var oController = this;
        var oView = this.getView();
    }

每次在Fiori Launchpad标题中按下按钮时,都会触发事件监听器。