我看到这个例子 https://openui5.hana.ondemand.com/explored.html#/entity/sap.ui.unified.Shell/samples
现在我有一个根视图(this.app),一切正常。
return this.app;
现在我想在shell容器中包含root应用程序.. 我试着这样做:
var oShell= new sap.m.Shell("idShell", {
title: "Test App",
logo:"https://dl.dropboxusercontent.com/u/7546923/OpenUI5/SAPUI5.png",
headerRightText: "This is a sap.m.Shell",
logout: function() {alert("Logout button was pressed");}
});
oShell.setApp(this.app);
return oShell;
但是通过这种方式,我无法看到顶部的栏。 (我只看到应用程序的宽度和应用程序中的徽标,左侧)
我尝试这样做:
var oShell= new sap.m.Shell("idShell", {
title: "Test App",
logo:"https://dl.dropboxusercontent.com/u/7546923/OpenUI5/SAPUI5.png",
headerRightText: "This is a sap.m.Shell",
logout: function() {alert("Logout button was pressed");}
});
oShell.setApp(sap.ui.xmlview("view.shell")); //the view of the example in the documentation
return oShell;
现在我使用sap.ui.unified.Shell
jQuery.sap.require("sap.ui.unified.Shell");
jQuery.sap.require("sap.ui.unified.ShellHeadItem");
this.shell = new sap.ui.unified.Shell('');
var logout=new sap.ui.unified.ShellHeadItem({
tooltip: "Logout",
icon: "sap-icon://menu2"
});
this.shell.addHeadItem(logout);
this.shell.addContent(this.app);
如何使用MVC模式管理shell bar内容?我想使用XML视图。我怎么能避免写
jQuery.sap.require("sap.ui.unified.Shell");
jQuery.sap.require("sap.ui.unified.ShellHeadItem");
答案 0 :(得分:3)
这对我有用:
new sap.m.Shell("Shell", {
app: sap.ui.jsview("RootView", "my-app.view.App")
}).placeAt("root");
虽然my-app.view.App
的根控件是sap.m.SplitApp
(或sap.m.App
)。请注意,sap.m.Shell
只提供一个框架,它不提供您在sap.m中通常使用的任何NavContainer,Page或类似概念。您view.shell
的根控制是什么?来自文档:
getApp():sap.ui.core.Control
Getter for aggregation app。 Shell包含App或SplitApp (它们可能包含在视图中)。不允许使用其他控件类型。
顺便说一下:您的示例链接对我不起作用。
BR 克里斯