在SAPUI5中重新加载应用程序

问题描述 投票:1回答:3

有什么办法可以重新加载整个SAPUI5应用程序吗?

调用SAPUI5应用程序时,会调用onInit()函数,我们正在初始化视图的一些设置。假设某些更改(如选择主视图中的复选框)需要重置整个应用程序,我们是否可以重新加载应用程序并再次调用onInit()函数来更正我们的初始设置?是否有任何触发机制可以通过它明确调用onInit()函数?

提前感谢您的建议。

问候,拉贾

sapui5
3个回答
2
投票

如果你需要重新加载或重置你的应用程序,那么我认为你的应用程序会遇到一个主要的设计缺陷......如果我是你,我肯定会首先考虑这个问题!

但是,要回答您的问题,为什么不将初始化代码移动到自己的函数中,并从onInit()事件处理程序调用该函数,并在需要重置应用程序时?


1
投票

有时你不能直接在sapui5中使用window全局变量。

参考此页:https://help.hana.ondemand.com/webide/frameset.htm?7d0dba71a2cb45ebb1959daba904ca99.html

var myLocation = location;
myLocation.reload();

1
投票

我建议你在Controller实例之间使用某种相互通信(例如:EventBus),从主视图通知你的控制器重新运行初始化逻辑,如下所示:

  1. 移动初始化逻辑以分离每个Controller上的函数,并在onInit上调用此方法
  2. onInit订阅重新初始化事件
  3. 在您的主视图中为所提到的复选框选择事件添加一个侦听器函数,并发布reinitialize事件以通知您的控制器重新初始化

Controller.js

function onInit() {
    this._initialize();
    EventBus.subscribe('reinitialize', this._initialize);
}
funcion _initialize() {
    // init logic
}

MasterController.js

function onSelectionChange() {
    EventBus.publish('reinitialize');
}
© www.soinside.com 2019 - 2024. All rights reserved.