在SAPUI5中重新加载应用程序

在SAPUI5中重新加载应用程序,sapui5,Sapui5,有什么方法可以重新加载整个SAPUI5应用程序吗 当调用SAPUI5应用程序时,将调用onInit()函数,我们将在此处初始化视图的一些设置。比如说,如果某些更改(如在主视图中选择复选框)需要重置整个应用程序,我们是否可以重新加载应用程序并再次调用onInit()函数来更正初始设置?是否有任何触发机制可以显式调用onInit()函数 提前感谢您的建议 问候,, Raja如果你需要重新加载或重置你的应用程序,那么我认为你的应用程序存在严重的设计缺陷。。。如果我是你,我肯定会先调查这件事 但是,为了

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

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

提前感谢您的建议

问候,,
Raja

如果你需要重新加载或重置你的应用程序,那么我认为你的应用程序存在严重的设计缺陷。。。如果我是你,我肯定会先调查这件事


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

有时您无法直接使用sapui5中的窗口全局变量。

请参阅本页:

var myLocation=位置;

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

  • 将初始化逻辑移动到每个控制器上的单独函数,并在
    onInit
  • onInit
    订阅重新初始化事件
  • 在主控视图中,向提到的复选框选择事件添加侦听器函数,并发布重新初始化事件以通知控制器重新初始化
  • Controller.js

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

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

    当你真的想重置整个东西时,你可以看看数据绑定,重新加载应该是没有必要的。您可以根据加载的数据(例如formatter函数)更新页面。谢谢您的建议。在我的应用程序中,当管理员用户登录时,他们可以更改其他用户的设置,当其他用户加载页面时,我认为最好完全刷新页面。您仍然可以使用它;它将被linter标记为错误。