Внутри функции onBeforeRendering() представления, как я должен определить, присутствует ли конкретный узел в модели и модифицировать модель, чтобы включить узел, если нет? Этот вопрос связан с ленивой загрузкой данных в модель для данных, которые будут редко доступны пользователям, но будет иметь ограничение производительности при загрузке исходных данных модели.Лучшая практика для ленивых данных загрузки на вкладке
В моем примере использования есть страница списка, ведущая на страницу подробностей для любого элемента в списке, который использует клики. На странице подробностей представлен набор вкладок, в которых отображаются детали, связанные с выбранной деталью. В частности, длинное текстовое описание краткого задания.
Элементы управления вкладками посредством маршрутизации стиля manifest.json для отображения вида в области содержимого вкладок.
Это мой текущий рабочий код, который находится в случае onBeforeRendering контроллера вида:
onBeforeRendering: function(oEvent){
var sPath = this.getView().getBindingContext("Projects").getPath(); // something like /task/6
console.log('Path='+sPath)
var oModel = this.getView().getModel("Projects");
var oTask = oModel.getProperty(sPath + "/brief");
if (oTask) { // looks like /brief exists so must already have loaded the brief
// nothing to do
console.log('Use existing data')
}
else { // /brief not yet present so we need to load it up
console.log('Load new data')
oModel.setProperty(sPath + "/brief", "This is the brief...") // replace with loaddata() from server, use attachRequestCompleted to call function to modify model.
}}
Вопрос - это правильный подход?
Редактировать: Основано на обсуждении в this question Я изменил свой код, чтобы использовать событие, которое срабатывает за отображение вида. onBeforeRendering оказался без заметной предсказуемости, что, я уверен, есть, но в любом случае мне нужно событие с одним дисплеем. Кроме того, я конкретизировал код дальше, но сохранил базовую структуру и, похоже, делает то, что хотел.
Спасибо. Что касается JSONModel, основанного на тяге, я согласен. Можете ли вы предложить лучший подход, обеспечивающий синхронизацию между клиентом и сервером? Мой случай использования не влияет на ваш вопрос, но я признаю, что другие, кого я ударил, скоро будут. Так в чем же лучшая практика? Насколько мне известно, популярные библиотеки MVC преимущественно одобряют JSON, поэтому это должна быть общая проблема. –