2014-12-26 3 views
1

Есть ли способ, с помощью которого мы можем перезагрузить все приложение SAPUI5?Обновить приложение в SAPUI5

Когда вызывается приложение SAPUI5, вызывается функция onInit(), и мы инициализируем некоторые параметры для просмотра здесь. Скажем, если какое-либо изменение (например, выбор флажка в главном представлении) требует сброса всего приложения, можем ли мы перезагрузить приложение и снова вызвать функциюInInt(), чтобы исправить наши начальные настройки? Есть ли какой-либо триггерный механизм, с помощью которого мы можем явно вызвать функцию OnInt()?

Заранее благодарю вас за ваши предложения.

С уважением, Raja

+1

Если вы действительно хотите сбросить все, что вы взглянуть на [ 'location.reload'] может (https://developer.mozilla.org/en-US/docs/Web/API/Location .reload) – herrlock

+0

Большое вам спасибо. Это сработало :) – Raja

+0

С привязкой данных перезагрузка не требуется. Вы можете обновлять свою страницу в зависимости от загруженных данных, например. функция форматирования. –

ответ

2

Если у вас есть необходимость перезагрузки или сброса приложения, то я думаю, ваше приложение страдает от основного недостатка дизайна ... Это, безусловно, то, что я хотел бы посмотреть на первый, если я были вы!

Однако, чтобы ответить на ваш вопрос, почему бы не переместить код инициализации в его собственную функцию и вызвать эту функцию из обработчика события onInit() и всякий раз, когда вам нужно сбросить приложение?

+0

Спасибо за ваши предложения. В моем приложении, когда пользователи Администратора вступают в систему, они могут изменять настройки других пользователей, когда загружаются другие страницы пользователей, я думал, что было бы лучше полностью обновить страницу. – Raja

1

Я предлагаю вам использовать какое-то внутренняя связь (например: EventBus) между экземплярами контроллера, от главного зрения уведомить ваш Контроллеры для повторной инициализации логики следующим образом:

  1. переместить вы инициализация логик отдельных функций на каждый контроллер и вызывать этот метод при 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'); 
} 
Смежные вопросы