2016-08-26 2 views
0

Я пытаюсь уничтожить глобальную модель, но не повезло. У меня есть кнопка для фильтра, который выглядит следующим образом:Как разрушить глобальную модель в SAPUI5

navToSecond : function (oEvent){ 
     var oObject = this.getView().byId("inp").getValue(); 
     sap.ui.getCore().setModel(oObject, "Filters"); 
     this.getRouter().navTo("second"); 
     }, 

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

Я пытался так:

sap.ui.getCore().getModel("Filters").destroy(); 

или

sap.ui.getCore().getModel("Filters").refresh(true); 

ответ

1

, если вы хотите использовать destroy и refresh функцию, вы должны подтвердить sap.ui.getCore().getModel("Filters") результата объект есть это две функции.
я догадался, вы можете попробовать это:

sap.ui.getCore().setModel(null, "Filters"); 

или:

sap.ui.getCore().setModel("", "Filters"); 
+0

Когда я пробую ваш фрагмент, все равно ничего не происходит. После изменения значений в поле ввода и повторного нажатия кнопки новый запрос не создается. –

+0

Предлагаю вам прочитать документ SAPUI5, возможно, найти другой способ решить эту проблему. –

+0

Настройка модели - это не то же самое, что выполнение запроса, оно просто привязало модель (включая любые потенциальные данные) к представлению, а дети вид. –

1

Вопрос о этой теме "Как разрушить глобальную модель в SAPUI5"

Ин Yi ответил правильно. Если вы отключите модель, все ссылки на модель будут удалены, и сборщик мусора сможет выполнить свою работу.

Но ваша настоящая проблема заключается в том, чтобы запустить выполнение запроса для обновления таблицы. Уничтожить и воссоздать модели - это неверный путь. Работайте с событиями, как я описал это в вашей другой теме.