Я работаю над приложением SAPUI5, отображающим некоторые данные в MasterDetailView с помощью sap.m.splitapp. Моя проблема остается равной вопросу Master menu is not visible on mobile devices but is visible on tablet.Главное меню не отображается на мобильных устройствах, но видно на InternetExplorer
В моем случае у меня сложилась ситуация, что я собираюсь создать MasterPage с MasterController в зависимости от запрашиваемых данных. В зависимости от этих данных я динамически создаю DetailPages в функции MasterController.
for(var i=0;i<adata.inhaltList.length;i++){var DetailPage = new sap.m.Page({
title: masterString,
showNavButton: true,
navButtonPress:function() {
var oSplitApp = this.getView().getParent().getParent();
var oMaster = oSplitApp.getMasterPages()[0];
oSplitApp.toMaster(oMaster, "flip");
}
}); };
На моем тестовом устройстве, все работает отлично, за исключением того факта, что у меня нет никакой возможности, чтобы показать MasterPage, даже ни одна кнопка не отображается.
Я пробовал решение связанного вопроса, но получаю сообщение об ошибке: «Элемент объекта sap.m.Page #__ page0 не имеет метода getView». Так что это не сработало. Даже Сделайте yourselve решения, добавив кнопку в пользовательском-заголовке:
contentLeft: [new sap.m.Button({
icon: "sap-icon://paging",
press: function() {
var splitApp = sap.ui.getCore().byId("ContentApp");
if (splitApp.isMasterShown()) {
console.log("Master weg");
splitApp.hideMaster();
} else {
console.log("Master kommt");
splitApp.showMaster();
var oSplitApp = this.getView().getParent().getParent();
var oMaster = oSplitApp.getMasterPages()[0];
oSplitApp.toMaster(oMaster, "flip");
};
}
})]
и пытаюсь показать мастер вручную не работает.
Функция SAPUI5: oSplitApp.showMaster(); отлично работает в проводнике, но не на устройстве! Кто-нибудь знает, почему? И, вероятно, решение?
У вас уже есть splitApp ('sap.ui.getCore(). ById (" ContentApp ");'), а затем вы снова извлекаете splitApp ('this.getView(). GetParent(). GetParent(); '). Просто повторите использование первого объекта, если второй не работает. Также вы создаете свои представления через JS, а не XML, поэтому копирование моего кода не работает. Мой код предназначен для запуска в контроллере, а не непосредственно в представлении. Попробуйте отделить представление от фактической логики. – Marc
также в этом случае: «Uncaught TypeError: this.getView не является функцией». Так что это не зависит от создания DetailView в Master-контроллере –