2016-11-21 1 views
-2

Je travaille sur une application SAPUI5 montrant des données dans un MasterDetailView en utilisant le sap.m.splitapp. Mon problème est quit égal à la question Master menu is not visible on mobile devices but is visible on tablet.Le menu principal n'est pas visible sur les appareils mobiles mais est visible sur InternetExplorer

Dans mon cas, j'ai la situation, que je vais créer une MasterPage avec un MasterController en fonction des données demandées. En fonction de ces données, je crée dynamiquement les DetailPages dans une fonction du 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"); 
      } 
     });  }; 

Sur mon appareil de test, tout fonctionne bien, sauf le fait que je n'ai pas possibilité de montrer la MasterPage, même pas le bouton est affiché.

J'ai essayé la solution de la question th linked, mais j'ai l'erreur suivante: "L'élément Object sap.m.Page #__ page0 n'a pas de méthode 'getView'". Donc ça n'a pas marché. Même une solution Do-it-yourselve, l'ajout d'un bouton dans une coutume en-tête:

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"); 
     }; 
    } 
})] 

et d'essayer de montrer le Maître ne fonctionne pas manuellement.

La fonction SAPUI5: oSplitApp.showMaster(); fonctionne bien dans l'explorateur mais pas sur l'appareil! Est-ce que quelqu'un sait pourquoi? Et a probablement une solution?

+0

Vous avez déjà le splitapp ('sap.ui.getCore(). ById (" ContentApp ");') et ensuite vous récupérez la splitApp ('this.getView(). GetParent(). GetParent(); '). Réutilisez simplement votre premier objet si le second ne fonctionne pas. Vous créez également vos vues via JS et non XML, c'est pourquoi le copier-coller de mon code ne fonctionne pas. Mon code est destiné à fonctionner dans le contrôleur, pas directement dans la vue. Essayez de séparer la vue de la logique actuelle. – Marc

+0

également dans ce cas: "TypeError Uncaught: this.getView n'est pas une fonction". Donc cela ne dépendait pas de la création de DetailView dans le Master-Controller –

Répondre

0

Je l'ai trouvé sur:

Même avec les postet « trucs », la classe SplittApp est pas disponible pour la catégorie de téléphone. Donc, pour voir le masterView, j'ai créé un PopUpMenu, qui ressemble à la MasterPage.

Tout va bien et je vous remercie pour la rétrogradation de ma question, car personne ne le sait exactement.