Wie übergebe ich bestimmte Bindungen an ng-outlet-Komponenten, die vom Komponenten-Router in Angular 1.5 importiert wurden?

8

Ich möchte in der Lage sein, Parameter an mit ng-outlet eingeführte Kindkomponenten zu übergeben. Aber ich bin nicht sicher, wie es geht.

Hier ist ein Beispiel für meine Komponentenbindungen:

%Vor%

Normalerweise würde ich das so aufrufen:

%Vor%

Aber stattdessen habe ich das:

%Vor%

Und ein Router, der das Profil übergibt.

%Vor%

Wie geht es also, wenn ich andere wichtige Bindungen, vielleicht Bindungen, die nicht in die URL kodiert werden können, an diese Komponente weiterleiten kann?

Danke, Hilfe wird sehr geschätzt

BEARBEITEN: Ich wurde gebeten, ein konkreteres Beispiel dafür zu geben, was ich tun möchte.

Ich dachte, das konzeptionelle Problem sei ziemlich klar, aber hier ist ein besonderer Fall, bei dem das Überholen von Routenparametern eindeutig unzureichend ist. Auf meiner App-Komponentenebene habe ich eine Event-Callback-Funktion, onDeleteItem (id)

Wie repliziere ich

? %Vor%

mit einem ng-Ausgang?

    
tcmoore 17.03.2016, 01:58
quelle

2 Antworten

6

Ich schaute auf die Dokumentation und sah das für einen von die im Router verwendeten Komponenten

  

bindings: { $router: '<' }

Also dachte ich gut darüber nach, ob diese Bindung eingefügt werden kann. Warum können wir dann keine Daten für die anderen Bindungen übergeben, aber ich habe die Quelle des Komponenten-Routers durchgesehen, und ich sehe tatsächlich keinen Weg dazu Daten auf diese Weise weitergeben. Dies liegt daran, dass es hier so aussieht, als wäre es speziell, wenn man den $ router , aber ich glaube nicht, dass die Vorlage danach geändert wird:

%Vor%


Ich werde jedoch sagen, Sie sollen Daten mit

an die Komponente übergeben können %Vor%

und dann injizieren RouteData in den Konstruktor der Komponente, aber ich denke, das ist nur in eckigen 2, weil ich nicht die Implementierung für die im Winkel 1 Router sehen.


Ich glaube also nicht, dass Sie das können oder es ist schwierig. Verwandte Themen: So können Sie Daten in Angular2-Komponenten einspeisen, die von einem Router erstellt wurden und Ссылка

    
CShark 29.03.2016, 20:33
quelle
5

Selbst über ngOutlet können Sie das require-Argument wie hier angegeben Ссылка verwenden, um eine übergeordnete Komponente zu benötigen. Auf diese Weise können Sie mit der übergeordneten Komponente aus der untergeordneten Komponente kommunizieren (selbst wenn die übergeordnete Komponente die untergeordnete Komponente über ngOutlet aufruft). Dies ermöglicht die Kommunikation von Kind = & gt; Elternteil. In Bezug auf Eltern = & gt; Kind, du könntest immer noch die gleiche Technik benutzen, auch wenn es sich ein bisschen komisch anfühlt (du rufst die Eltern vom Kind an, um zu bekommen, was du brauchst ...). Vielleicht existiert bereits etwas mehr Standard, oder wird bald implementiert.

    
Christophe Vidal 05.04.2016 14:05
quelle

Tags und Links