2016-04-10 2 views
1

Wie kann ich die Referenz-ID eines Elements in einer anderen Ansicht abrufen? Wie zum Beispiel habe ich die folgende Dateistruktur (mvc)So erhalten Sie die Referenz-ID eines Elements in einer anderen Ansicht - UI5

-view 
|-- View1.view.xml 
|-- View2.view.xml 
-controller 
|-- View1.controller.js 
|-- View2.controller.js 

Unter der Annahme, dass während der Laufzeit von View2.controller.js, wie kann ich ein bestimmtes Element in View1.view.xml bekommen?

+0

Fragen mit "Unter der Annahme," in ihnen sind ofthen nicht gut und neigen zu bekommen dwonvoted. Stellen Sie uns reale Beispiele zur Verfügung, in denen das Problem besteht, und nicht Gedankenexperimente. Wenn Sie neu sind, werfen Sie einen Blick auf die [Tour] – inetphantom

+0

Sie können sich Modellbindung und (globale) Ereignisse ansehen. Sie könnten eine Alternative zum Zugriff auf die Steuerelemente einer anderen Ansicht sein. – hirse

Antwort

1

Sie können relativ Navigation verwenden. Verwenden Sie nicht absolute Navigation, da das nicht mehr funktioniert, wenn Sie wie lokale HTML zu FioriLaunchpad ändern.

Befehle sind:

-Controller

Managed Object

Jetzt können Sie mit dem OwnerComponent, navigieren und dort wird somwhere gespeichert werden, um Ihre Zielansicht, als Variable irgendwo oder als Aggregation von Ihrem Element gespeichert.

Seit IDK, was Ihre Ansichten sind und wie sie gespeichert werden, kann ich Ihnen kein richtiges Beispiel geben.

0

Angenommen, die ID des Elements in View1.view.xml lautet "idOfElement". können Sie den Bezug dieses Elements in einer anderen Ansicht (View2.controller.js) derselben Anwendung mit der Anweisung zuzugreifen:

      var elementID = sap.ui.getCore().byId("idOfElement"); 
0

Zum Beispiel, Ich versuche, ein Element zu erhalten, die ID idAppControl in App ist. view.xml, und ich möchte es für den Zugriff in Master.controller.js

Hier ist meine Lösung ist:

var ownerId = this.getView()._sOwnerId, 
rootId = this.getOwnerComponent().getManifestEntry("sap.ui5").rootView.id, 
id = "idAppControl", 
realId = ownerId + "---" + rootId + "--idAppControl", 
element = sap.ui.getCore().byId(realId); 

sOwnerId ist ein Privateigentum, konnte ich einen besseren Weg finden, um es zu bekommen.

Mein manifest.json:

"sap.ui5": { 
    "rootView": { 
     "viewName": "xxx.view.App", 
     "type": "XML", 
     "id": "app" // what I get in rootId 
    }, 
} 
Verwandte Themen