我在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
}
},
答案 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
NavContainerChild
有关其他与导航相关的事件,请参阅sap.ui.core.Element#addEventDelegate