我有一个基于此样板的SplitApp http://goo.gl/zwNeH6 我有很多母版页和许多细节页。 如何在不重复XML视图代码和JS控制器代码的情况下将相同的元素(例如个人条形图)添加到所有母版页中?
我按以下代码添加页面:
function addDetailAndMaster(){
var splitApp = sap.ui.getCore().byId("splitApp");
//master
splitApp.addMasterPage(sap.ui.xmlview("IntraMaster", "apps.appIntra.master.IntraMaster"));
splitApp.addMasterPage(sap.ui.xmlview("intraAcqMaster", "apps.appIntra.master.intraAcqMaster"));
splitApp.addMasterPage(sap.ui.xmlview("intraCesMaster", "apps.appIntra.master.intraCesMaster"));
splitApp.addMasterPage(sap.ui.xmlview("segnIncrMaster", "apps.appIntra.master.segnIncrMaster"));
splitApp.addMasterPage(sap.ui.xmlview("presMaster", "apps.appIntra.master.presMaster"));
splitApp.addMasterPage(sap.ui.xmlview("dettMaster", "apps.appIntra.master.dettMaster"));
//detail
splitApp.addDetailPage(sap.ui.xmlview("welcomeIntraDetail", "apps.appIntra.misc.welcomeIntraDetail"));
splitApp.addDetailPage(sap.ui.xmlview("advancedDetail", "apps.appIntra.detail.advancedDetail"));
splitApp.addDetailPage(sap.ui.xmlview("storeProcedureDetail", "apps.appIntra.detail.storeProcedureDetail"));
splitApp.addDetailPage(sap.ui.xmlview("operationDetail", "apps.appIntra.detail.operationDetail"));
splitApp.addDetailPage(sap.ui.xmlview("rowDetail", "apps.appIntra.detail.rowDetail"));
splitApp.addDetailPage(sap.ui.xmlview("rowDetailEdit", "apps.appIntra.detail.rowDetailEdit"));
splitApp.addDetailPage(sap.ui.xmlview("artSnzNomDetail", "apps.appIntra.detail.artSnzNomDetail"));
splitApp.addDetailPage(sap.ui.xmlview("formNewNomDogDetail", "apps.appIntra.detail.form.formNewNomDogDetail"));
splitApp.addDetailPage(sap.ui.xmlview("rowArtConNomDetail", "apps.appIntra.detail.rowArtConNomDetail"));
}
答案 0 :(得分:0)
由于没有可用的API来实现您的要求(查看API reference),您可以尝试这种方法,
1)获取SplitApp
var aMasterPages = splitApp.getMasterPages();
2)循环浏览它们并添加您需要的内容
for(var i=0; i<aMasterPages.length; i++)
{
var oMasterPage = aMasterPages[i];
/* Add header content */
var oBar = new sap.m.Bar({contentMiddle: new sap.m.Label({text: "Title"}) });
oMasterPage.addHeaderContent(oBar);
}
同样,&#39; addContent&#39;方法可用于向页面添加任何其他内容。 浏览我之前提到的API参考。
答案 1 :(得分:0)
将您的个人栏创建为单独的视图 - 控制器对,并从您的所有页面实例化它。视图控制器不一定必须是一个页面,它可以是任何东西,无论你想要多么微不足道或细粒度。
如果您没有特定的控制器代码,您确实可以使用已建议的资格等片段。