2017-09-13 1 views
1

Ich möchte Angular verwenden, um Liferay-Portlets auf derselben Seite darzustellen. Jedes Portlet ist separat codiert, ich habe mehrere parallel laufende Angular-Instanzen erhalten. Jetzt habe ich Portletid1 und Portletid2 innerhalb der gleichen Seite, jedes Portlet ist eine separate eckige Anwendung und hat eine separate Routen. Ich mag jede Portlet Ereignis seines Hash-Änderung getrennt hören wir die URL vorstellen können, wie dies zum Beispiel sein: https://myportal/page#portletid1:/login;portlet2:/route2 Ist es möglich, den Winkel App auf Portlet 1 hören portletid1 zu lassen: route_of_portlet_1 und hält Portlet 2 Zuhören zu portletid2: route_of_portlet_2?Angulares Routing für mehrere Winkelinstanzen auf derselben Seite anpassen

Ich verwende Angular 2.

+0

nicht sicher über Portlet, aber wenn Sie die loadChildren in Route sehen, lädt es dynamisch Modul und seine Komponente. –

Antwort

0

Ich habe Erfahrung nicht mit kantigem, aber vor kurzem ein angular sample project wurde Liferay Blade Proben hinzugefügt, die möglicherweise entweder tun, was Sie wollen oder vielleicht auch einfach sein - bitte bestätigen das alleine.

Es ist wahrscheinlich zu viel die vollständige Probe hier zu kopieren, aber beachten Sie die Magie-Werte in den Ansichten verwendet:

bnd.bnd erklärt Web-ContextPath: /angularjs-simple-portlet, die in view.jsp verwendet wird.

Das Portlet selbst, ohne viel Code, erklärt javax.portlet.name=AngularJSSimplePortlet (ich mir die Freiheit genommen habe, die konstant zu lösen), die dann in app.js bezeichnet, zusammen mit dem Web-ContextPath von oben.

Ich überlasse es Ihnen zu versuchen, wenn dies Ihren Bedürfnissen entspricht oder wenn Sie etwas mehr automatisch benötigen. Beachten Sie, dass der js-Code nicht serverseitig verarbeitet wird. Sie können mehr serverseitige Verarbeitung durchführen, wenn JSPs Ihren JS-Code zur Verfügung stellen - aber das ist normalerweise nicht das, was die Leute anstreben.

Verwandte Themen