У вас есть решение. Существует событие, называемое routeMatched, когда навигацию запускается каждый раз. Вы можете прикрепить событие на странице подробностей.
onInit : function () {
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
this._oRouter.attachRouteMatched(this.handleRouteMatched, this);
},
handleRouteMatched : function (evt) {
//Check whether is the detail page is matched.
if (evt.getParameter("name") !== "detail") {
return;
//You code here to run every time when your detail page is called.
}
С уважением, Allen
Если используется маршрутизация, другая версия кода Аллена:
onInit : function () {
this._oRouter = sap.ui.core.UIComponent.getRouterFor(this);
this._oRouter.getRoute("detail").attachMatched(this.handleRouteMatched, this);
},
handleRouteMatched : function (evt) {
//You code here to run every time when your detail page is called.
}
Я использую onBeforeShow
в моих целевых представлениях для этого.
onBeforeShow : function(evt) {
// gets called everytime the user
// navigates to this view
},
Это функция, которая запускается NavContainer для своих детей в случае навигации. Это описано в NavContainerChild .