2017-06-13 6 views
0


Ich suchte die Antwort auf diese Frage, aber jede Lösung, die ich fand, funktionierte nicht, also denke ich, dass mein Problem wahrscheinlich auf einem höheren Niveau liegt (Aber die offiziellen und inoffiziellen SAP-Führer haben nicht geholfen).SAPUI5 Wie füge ich fragment oder xmlview in eine semantische Detailansicht ein

Ich habe eine Fiori Master-Detail-Anwendung, und meine Detailansicht ist die folgende:

<mvc:View 
     controllerName="masterdetailsample.controller.Detail" 
     xmlns="sap.m" 
     xmlns:l="sap.ui.layout" 
     xmlns:core="sap.ui.core" 
     xmlns:mvc="sap.ui.core.mvc" 
     xmlns:semantic="sap.m.semantic"> 

    <semantic:DetailPage 
     id="page" 
     navButtonPress="onNavBack" 
     showNavButton="{device>/system/phone}" 
     title="{i18n>detailTitle}" 
     busy="{detailView>/busy}" 
     busyIndicatorDelay="{detailView>/delay}"> 

     <semantic:content> 
      <ObjectHeader 
       id="objectHeader" 
       title="{EmployeeID}"> 
      </ObjectHeader> 
      <l:VerticalLayout> 
       <IconTabBar 
        id="iconTabBar" 
        class="sapUiResponsiveContentPadding" 
        upperCase="true"> 
        <items> 
         <IconTabFilter 
          id="detailIconTabBarInfo" 
          text="{i18n>detailIconTabBarInfo}" 
          tooltip="{i18n>detailIconTabBarInfo}"> 

          <Toolbar design="Solid"> 
           <content> 
            <Title 
             text="{i18n>detailIconTabBarInfo}" 
             width = "100%"> 
            </Title> 
           </content> 
          </Toolbar> 

          <core:Fragment id="perfEval" fragmentName="masterdetailsample.view.viewcomponents.PerformanceDevelopment" type="XML"/> 
          <mvc:XMLView id="compOvw" viewName="masterdetailsample.view.viewcomponents.PerformanceDevelopment" displayBlock="true"/> 

         </IconTabFilter> 
        </items>  
       </IconTabBar> 
      </l:VerticalLayout> 
     </semantic:content> 
    </semantic:DetailPage> 
</mvc:View> 

Und mein Fragment Seite ist die folgend:

<core:FragmentDefinition 
    xmlns="sap.m" 
    xmlns:core="sap.ui.core" 
    xmlns:l="sap.ui.layout" 
    xmlns:f="sap.ui.layout.form" 
    xmlns:mvc="sap.ui.core.mvc"> 
    <Text> 
     FRAGMENT CONTENT 
    </Text> 
</core:FragmentDefinition> 

Während die xmlview ist:

Ich habe jede Kombination ausprobiert, an die ich denken konnte, aber die Seite wird nicht gerendert.
Jetzt weiß ich, dass Fragmente und xmlviews von einem Aggregator umgeben sein müssen, der nicht das "Content" -Tag von sap.m sein kann. Also habe ich mit "VerticalLayout" und "content" von sap.ui.layout versucht, sie durch die Seite zu bewegen, aber der Browser beschwert sich immer noch über die Verwendung des richtigen Aggregators (aus der ff-Konsole "Kann Textknoten nicht als direktes Kind eines hinzufügen Aggregation: Zum Hinzufügen von Text zu einer Aggregation wird ein umgebendes HTML-Tag benötigt: FRAGMENT CONTENT ").
Ich habe gelesen, dass die Ansicht in manifes.json erklärt werden muss, aber wenn ich richtig verstanden habe, nur wenn diese Seiten "Standalone" sind. Ich dachte, dass dies nicht mein Fall ist, da ich viele dieser Unteransicht oder Fragmente in meiner Anwendung wiederverwenden würde.
Ich habe überprüft, ob ich bei meinem anderen Versuch etwas Müll oder einen falschen Code übrig habe, aber alles scheint korrekt zu sein.
Ich dachte, dass xmlviews und Fragmente möglicherweise nicht innerhalb von sap.m.semantic.DetailPage verwendet werden können, aber ich habe keinen Beweis dafür durch die SAP-Dokumentation gefunden.
Es ist richtig, eine Detailseite so zu strukturieren, wie ich es getan habe? Kann ein IconTabFilter eine Unteransicht oder ein Fragment enthalten oder ist es besser, die Seite anders zu gestalten? Jedes Mal, wenn ich etwas ändere, weiß ich nicht, ob es aufgrund von konzeptionellen oder Designfehlern funktioniert, und ich bin ein wenig frustriert.

Vielen Dank an alle

Antwort

0

Der Fehler von <Text> FRAGMENT CONTENT </Text> verursacht wird. Sie können keinen Text direkt in das <Text>-Tag eingeben. Sie müssen <Text text="FRAGMENT CONTENT"/>. verwenden

Der Rest des Codes scheint gut.

+0

Nun, vielen Dank Herr! Ich hatte den Eindruck, dass es einige verbotene Tags innerhalb des Tags gab, die für mich nicht viel Sinn ergaben. Dies ist definitiv logischer. Danke –

+0

@MarcoDalena Froh, zu helfen. Fühlen Sie sich frei, die Antwort zu akzeptieren, wenn dies Ihr Problem gelöst hat, oder lassen Sie es mich wissen, wenn nicht und ich werde versuchen, es zu bearbeiten. Edit: Ich habe festgestellt, dass Sie nie zuvor eine Antwort angenommen haben, also werde ich diesen Link hier lassen: https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

Verwandte Themen