Angular 4 Direktive zum Selektieren eines Elements innerhalb einer Komponente

9

Wie Sie ein spezifisches Element innerhalb einer Komponente in der Angular Directive anzielen.
Ich habe eine Komponente mit Selektor "Highlighter". Diese Komponente verfügt über Content-Projekte, die ng-content verwenden.
Es gibt eine Direktive mit Selektor "Textmarker-Eingabe".
Ich glaube, diese Anweisung sollte nur innerhalb der Textmarker-Komponente auf jede Eingabe angewendet werden, aber sie wird auf alle Eingaben in der Anwendung angewendet - was ist falsch?

Plunker: Ссылка

%Vor%     
Suresh Nagar 14.01.2018, 22:58
quelle

3 Antworten

3

Selektoren in Angular unterstützen Kombinatoren nicht:

%Vor%

So gewinnt der letzte distinkte Selektor in der Zeichenfolge, der in Ihrem Fall input ist. Deshalb wird es auf alle Eingaben angewendet.

Eine andere Sache ist, dass sich der projizierte Inhalt nicht innerhalb einer Komponente befindet, auf die projiziert wird. Selbst wenn die von Angular unterstützten Kombinator-Selektoren unterstützt werden, sollte der Selektor highlighter input immer noch nicht funktionieren.

Die einfachste Lösung wäre, der Eingabe eine Klasse wie folgt hinzuzufügen:

%Vor%

und targe diese Klasse im Selektor:

%Vor%     
AngularInDepth.com 15.01.2018, 06:14
quelle
0

Direktiven werden auf alle Selektoren innerhalb des deklarierten Moduls angewendet.

    
Baconbeastnz 14.01.2018 23:07
quelle
0

Ein Hinweis, den ich im Angular-Dokument gefunden habe , ist Folgendes:

  

Angular erlaubt nur das Auslösen von Direktiven für CSS-Selektoren, die keine Elementgrenzen überschreiten.

    
Krist Jin 16.01.2018 18:03
quelle

Tags und Links