应用程序定义之间的SAPUI5导航



我是SAPUI5开发的新手,我想知道如何浏览不同的应用程序定义。

就我而言,我正在开发一个使用sap.m.app的移动应用程序,在某些视图中,我想使用sap.m.splitApp.

首先,我有一个登录页面和一个带有一些选项的tile容器。根据用户的选择,我展示了一个带有主页和详细信息页面的splitApp。

主应用程序控制器:使用此方法,我可以导航到我的splitApp视图

toApp: function (pageId, context) {
   var app = this.getView().app;
   // load page on demand
   var master = ("Login" === pageId);
   if (app.getPage(pageId, master) === null) {
     var page = sap.ui.view({
        id : pageId,
        viewName : "view." + pageId,
        type : "JS",
        viewData : { component : this }
      });
      page.getController().nav = this;
      app.addPage(page, true);
      console.log("app controller > loaded page: " + pageId);
   }
   // show the page
   app.to(pageId);
   // set data context on the page
   if (context) {
      var page = app.getPage(pageId);
      page.setBindingContext(context);
   }
},

Ticket.view.js:在这里,我将主页和详细信息添加到我的应用

createContent : function(oController) {
  // to avoid scroll bars on desktop the root view must be set to block display
  this.setDisplayBlock(true);
  // create app
  this.app = new sap.m.SplitApp();

  // load the master page
  var master = sap.ui.xmlview("MyTicketsList", "view.MyTicketsList");
  master.getController().nav = this.getController();
  this.app.addPage(master, true);
  // load the empty page
  var empty = sap.ui.xmlview("Empty", "view.Empty");
  this.app.addPage(empty, false);
  return this.app;
}

而且运行良好。我可以导航到我的splitApp。问题是,如果用户选择其他选项,我必须返回主页(带有tile容器)。我希望在我的Ticket.controller.js 中使用以下方法

back : function (pageId) {
  this.getView().app.backToPage(pageId);
}

而且,在MyTicketsList控制器上,我使用处理了avButtonPress

this.nav.back("MainPage");

但这行不通!

如何在应用程序中导航?或者,也许,如何使用母版页和详细信息页更好地创建拆分器页面视图?

第页。S.:我正在学习这个教程

提前感谢!

在splitApp中,首先应该将视图实例化为

oSplitApp.addDetailPage(您的视图);

然后从splitapp使用导航,oSplitApp.toDetailPage(您的视图);

这比看起来更容易。

我也遇到了同样的问题,要预览SplitApp,您只需要像普通的XML视图一样调用视图,但插入TAG

   onInit: function() {
     this.bus = sap.ui.component(sap.ui.core.Component.getOwnerIdFor(this.getView())).getEventBus();
},
doNavBack: function(event) {
    this.bus.publish("nav", "to", {id : "Page1"});
},

相关内容

  • 没有找到相关文章

最新更新