2016-11-16 1 views
-2

Я работаю над приложением SAPUI5, содержащим SplitApp с одним MasterPage и множеством DeatilPages. Я создаю список StandartListItems для MasterPage, если я выберу один из них, я хочу показать правый DetailPage. Но на данный момент я понятия не имею, как его реализовать.SAPUI5 - Как установить ссылку на приложение MasterDetail Split

Заполните перечень MasterPage:

var oMasterPage = sap.ui.getCore().byId("masterPage"); 
    var masterContentList = sap.ui.getCore().byId("masterList"); 

    masterContentList.bindItems({ 
     path : "/inhaltList", 
     template : new sap.m.StandardListItem({ 
      title: "{master}" 
     }) 
    }); 

И для каждого MasterListItem я создаю DetailPage и добавить его в SplitApp:

var detailContentList = new sap.m.List({}); 
     detailContentList.bindItems({ 
      path : "/inhaltList", 
      sorter : new sap.ui.model.Sorter("name"), 
      template : new sap.m.CustomListItem({ 
       content: [ 
        new sap.m.VBox({ 
         width : "80%", 
         displayInline : false, 
         direction: "Column", 
         items:[ 
         new sap.ui.commons.TextView({text:"titel", design:sap.ui.commons.TextViewDesign.H2}), 
         //new sap.ui.commons.TextView({text:"{detail>titel}", design:sap.ui.commons.TextViewDesign.H2}), 
         //new sap.ui.commons.TextView({text:"{detail>content>text}", design:sap.ui.commons.TextViewDesign.Small}) 
         new sap.ui.commons.TextView({text:"textetextetextetexttextexte", design:sap.ui.commons.TextViewDesign.Small}) 
         ] 
        }) 
       ] 
      }) 
     }); 

     var DetailPage = new sap.m.Page({ 
        path : "/inhaltList", 
        title: "{master}", 
        content:[ 
        detailContentList 
        ] 
       }); 


     splitApp.addDetailPage(DetailPage); 

В конце концов, у меня есть один MasterPage в SplitApp и в одном случае 4 DetailPages. Это до сих пор работает.

Теперь я хочу установить связь с объектом MasterListItem вправо DetailPage, чтобы появился правильный DetailPage, если я выделил MasterListItem для этого.

У кого-нибудь есть идеи?

+0

Пожалуйста, проверка на примере Master-Detail приложения. Там вы должны получить некоторые подсказки, как это работает, особенно с маршрутизацией. https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/master-detail/webapp/test/mockServer.html – matbtt

+0

Я уже знаю этот пример и не имеет ничего общего с моей ситуацией. Это СТАТИКА! НО: Я собираюсь сделать это динамично! –

+0

Вы не упомянули, что вам нужен динамический подход. Цитата из ваших вопросов: [...], если я выберу одну из них, я хочу показать правую DetailPage [...]. Однако вы можете подключать мастер и деталь вместе с помощью маршрутизации. Деталь может быть пустым представлением, чей контроллер загружает выделенное представление в виде subview. – matbtt

ответ

0

Как я понимаю, у вас есть sap.m.StandardListItem с некоторыми элементами, и вы хотите переключать данные, нажимая на элемент. Самый простой способ: 1. добавить мероприятие для прессы в свой пункт. контроллер - это контроллер, если вы делаете это в представлении.

press: [controller.pressItem, controller] 

2 pressItem, получить приложение и использовать to метод.

var app = sap.ui.getCore().byId("splitApp"); 
app.to(id, "slide", data) 

где id - это идентификатор вашей страницы подробностей, а данные - это полезная нагрузка, которую вы хотите отправить на страницу.

Примечания: 1. Реализация через event bus также будет работать и будет лучше

+0

Проблема заключается в том, что я генерирую DetailPages аномально и в зависимости от удаленных данных, хранящихся в контроллере MasterPage. Для каждого элемента MasterList я создаю страницу Detailpage и добавляю ее прямо к SplitApp ... Итак, nocht можно запросить идентификатор, потому что, если я собираюсь установить его, консоль сообщает мне, что идентификатор дублируется , –