sapui5统一Shell中的导航问题(sap.ui.unified.Shell)

时间:2015-02-06 08:34:19

标签: shell navigation sapui5

我使用统一的Shell控件来实现类似facebook的滑动菜单,并在其中集成了一个列表,以便我可以输入菜单项。这个想法是,当用户点击菜单中的某个列表项时,他将被重定向到新视图。我尝试使用bus.publish(" nav","到" {id:..})来实现它,但它无法正常工作。 (我把菜单放在统一外壳的Curtain窗格中)有人可以帮帮我吗? 您可以在下面找到视图和控制器的相应代码段。

var oListTemplate = new sap.m.StandardListItem({
            title: "{title}",
            icon: "{icon}",
            description: "{description}",
            type: sap.m.ListType.Navigation,
            customData: new sap.ui.core.CustomData({
                key: "targetPage",
                value: "{targetPage}"
            })
        });

        var oList = new sap.m.List({
            selectionChange: [oController.doNavOnSelect, oController],
            mode: sap.m.ListMode.SingleSelectMaster
        });
        oList.bindAggregation("items", "/Menu", oListTemplate);

控制器:

onInit: function() {

        this.getView().setModel(new sap.ui.model.json.JSONModel("model/menu.json"));
       this.bus = sap.ui.getCore().getEventBus();
    },


 doNavOnSelect: function(event){
     if (sap.ui.Device.system.phone) {
            event.getParameter("listItem").setSelected(false);
        }
     this.bus.publish("nav", "to", {
            id: event.getParameter('listItem').getCustomData()[0].getValue()
        });

2 个答案:

答案 0 :(得分:1)

通过sap.ui.core.EventBus导航已过时。 请查看SAPUI5导航和路由http://help.sap.com/saphelp_hanaplatform/helpdata/en/68/8f36bd758e4ce2b4e682eef4dc794e/content.htm

  

在版本1.16中向UI5引入了一种新的路由机制。对于应用内导航,这取代了以前的技术,例如使用sap.ui.core.EventBus或在聚合页面之间共享特定于导航容器的控制器代码。

答案 1 :(得分:0)

解决方案:将bus.publish替换为app.to

doNavOnSelect: function(event){
    if (sap.ui.Device.system.phone) {
            event.getParameter("listItem").setSelected(false);
        }

    app.to(event.getParameter('listItem').getCustomData()[0].getValue());

    }