У меня есть главный экран с плиткой, которую пользователь может нажать, чтобы перейти на другую страницу. Oninit: для этой второй страницы отлично работает при получении/настройке модели, и данные отображаются правильно. Если я вернусь на первую страницу (после того, как я внес изменения на втором экране), а затем нажмите на плитку, чтобы перейти на вторую страницу, она не вызывает oninit этот второй раз, и поэтому данные отражают изменения, которые были сделаны, а не то, что я хочу (истинные инициализированные данные). Я попытался изменить onInit на OnBeforeRedendering, надеясь, что он будет повторно инициализировать модель/данные, но, похоже, он не сбрасывает все правильно. Есть ли способ вернуться, чтобы сделать что-то, чтобы заставить onInit быть вызванным в следующий раз, когда страница вызывается? Я думаю, что если я смогу сделать так, чтобы onInit вызывал каждый раз, когда вызывалась страница, что она исправит мою проблему.SAPUI5 Page Init/Re-Init
Вот часть моего контроллера для OnInit и GoBack ....
sap.ui.define([
'sap/ui/core/mvc/Controller',
'sap/ui/model/json/JSONModel',
'sap/viz/ui5/controls/common/feeds/FeedItem',
'sap/m/MessageBox',
'sap/viz/ui5/data/FlattenedDataset'
], function(Controller, JSONModel, FeedItem, MessageBox, FlattenedDataset) {
"use strict";
var ColumnController = Controller.extend("controllers.Quarter", {
onInit: function (oEvent) {
var oRouter = sap.ui.core.routing.Router.getRouter("router");
var myView = this.getView();
var today = new Date();
var year = today.getFullYear();
var yr = year.toString();
var mnth = today.getMonth();
var qtr = Math.floor((mnth/3));
this.makeYearList(yr);
var mthis = this;
var oModel = new sap.ui.model.json.JSONModel();
// set the data for the model
oModel.setData({yr:yr});
// set the model to the core
sap.ui.getCore().setModel(oModel);
myView.byId("mySelectMenu").setSelectedKey(yr);
myView.byId("mySelectMenu").attachChange(function() {
yr = this.getSelectedKey();
mthis.checkYr(yr, qtr);
mthis.recList(myView,yr, qtr);
});
myView.byId("selQtr").attachChange(function() {
qtr = this.getSelectedKey();
mthis.checkYr(yr, qtr);
mthis.recList(myView,yr, qtr);
});
oRouter.attachRouteMatched(function(oEvent) {
mthis.checkYr(yr, qtr);
mthis.recList(myView, yr, qtr);
});
},
goBack : function(){
var oHistory = sap.ui.core.routing.History.getInstance();
var sPreviousHash = oHistory.getPreviousHash();
var oView = this.getView();
if(sPreviousHash){
window.location.replace("#/" + sPreviousHash);
} else {
window.location.replace("#");
}
},
});
return ColumnController;
});
Я был бы признателен за любые советы.
спасибо. Мне придется попробовать это ... Я думал об этом прошлой ночью, а также о возможности ... – user3861284