在SAPUI5中重新加载应用程序

时间:2014-12-26 10:46:42

标签: sapui5

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

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

提前感谢您的建议。

此致 拉加

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

var myLocation = location;
myLocation.reload();

答案 2 :(得分:1)

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

  1. 将初始化逻辑移动到每个Controller上的单独函数,并在onInit
  2. 上调用此方法
  3. onInit订阅了重新初始化事件
  4. 您在主视图中的
  5. 将侦听器功能添加到上述复选框选择事件中,并发布reinitialize事件以通知您的控制器重新初始化
  6. Controller.js

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

    MasterController.js

    function onSelectionChange() {
        EventBus.publish('reinitialize');
    }