2017-02-03 3 views
0

Ich habe zwei Module (M1, M2) mit zwei Komponenten auf jedem (CL1, CI2, CL3, CI4): Eine ListComponent und eine ItemComponent. Ich habe ein geteiltes Modul erstellt, in dem SearchComponent nach Elementen sucht, um die Listen zu füllen. SearchComponent ruft einen Backend-Dienst auf und gibt je nach Fall einen json mit CI2- oder CI4-Daten zurück.Angular2 Gemeinsame Komponente mit dynamischen nicht geteilten Komponenten

Das Problem ist, dass ich CI2 und CI4 in SearchComponent wiederverwenden möchte, um Suchergebnisse anzuzeigen, aber sie können nicht auf SharchModule (SM) deklariert werden, da sie bereits auf M1 und M2 sind. Zusätzlich ergibt sich eine zirkuläre Abhängigkeit zwischen M1 < -> SM und M2 < -> SM.

Gibt es eine Idee, CI2 und CI4 in SM wiederverwenden zu können? Der einzige Weg, den ich gefunden habe, ist CI2 und CI4 für SM zu kopieren, aber ich möchte das vermeiden.

Plunker mit schnellem Beispiel: https://plnkr.co/edit/a3xiBz6uUF7OcAaRLD4c

Linie 30 von SearchComponent ist, wo CI2, CI4 wiederverwendet werden soll.

+1

Sie können SM so konstruieren, dass es 'ng-content' verwendet, um Ergebnisse anzuzeigen, und dann keine Vorkenntnisse der angezeigten Komponenten benötigen. Wenn Sie einem Plünderer ein Codebeispiel oder einen Punkt hinzufügen können, hilft es, das Problem zu verstehen. –

Antwort

0

Angular 2 dynamic tabs with user-click chosen components

<ng-container *ngComponentOutlet="component"></ng-container> wobei Komponente CI2 oder CI4 ist, die je nach Fall. Außerdem müssen CI2 und CI4 nicht in das Suchmodul importiert werden. (ngComponentOutlet ist auf Angular 4).

Verwandte Themen