用于查看离开的SAPUI5事件处理函数

时间:2015-06-10 13:53:21

标签: javascript sapui5

我在SAPUI5应用程序中为视图声明了一个控制器。现在,我希望用户在执行任务时执行任务

现在已经有可能向attachRoutePatternMatched添加回调函数以在用户导航视图时执行任务我现在需要一个等效函数来处理视图的离开。我使用SplitContainer作为父容器

onInit: function () {
    this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
    this._oRouter.attachRoutePatternMatched(this._routePatternMatched, this);
},


_routePatternMatched: function (oEvent) {
    var that = this;
    var sRouteTargetName = oEvent.getParameter("name");
    if (sRouteTargetName === "myView") {
         // perform tasks if the view is opened by the user

    } 
},

3 个答案:

答案 0 :(得分:0)

你可以试试这是否有效:

navAway: function(viewName, callback) {
    this._oRouter.navTo(viewName);
    if(callback && typeof(callback) === "function") {
        callback();
    }
}

e.g。 this.navAway("myView", function() { //doStuff });

答案 1 :(得分:0)

假设你的意思是向后导航?如果你有一个后退按钮,可能你必须把你的行动放在那个功能中。例如,你的细节/主人在工具栏中有一个navBack按钮,所以把你的逻辑放在按钮的事件处理程序中......

答案 2 :(得分:0)

您可以使用NavContainerChild的{​​{3}}代表来实现:

onInit: function() {
  const delegate = { onBeforeHide: this.onBeforeLeave.bind(this) };
  this.getView()/*navContainerChild*/.addEventDelegate(delegate);
},

onBeforeLeaving: function() {
  // ...
}, 

示例: BeforeHide


有关其他与导航相关的事件,请参阅sap.ui.core.Element#addEventDelegate

中提到的文档主题