Angenommen, man hat zwei vordefinierte Direktiven dir1
und dir2
(die von einer API eines Drittanbieters zur Verfügung gestellt werden, über die man keine Kontrolle hat). Lassen Sie uns sagen, dass diese ein HTML-Element bezieht sich wie folgt zusammen:Konsolidierung von zwei Direktiven in einem einzigen
<div dir1="red" [dir2]="123">... My Content ...</div>
ich gefunden habe mich die über den Richtlinien mit den exakt gleichen Bindungswerte an mehreren Stellen in meinem Code anwenden. Anstatt mich zu wiederholen, würde Ich mag meine eigene benutzerdefinierte Richtlinie erstellen, es myDir
nennen, dass ich so gelten könnte:
<div MyDir >... My Content ...</div>
Diese genau das gleiche wie die Anwendung dir1
und dir2
wie im Stand sein sollte Beispiel oben, dh es wird die Werte "red"
und 123
hart in seiner Klasse codiert haben.
Ich habe versucht, Host-Bindungen wie in dem folgende plunker Beispiel voran, aber das funktioniert nicht ..
Eine Idee, die ich ist, wenn nur Typoskript Mehrfachvererbung hat, dann würde ich einfach schreibt die MyDir
Klasse einer Erweiterung von Dir1
undDir2
..
Meine Frage ist, wie ich mich über die benutzerdefinierte Richtlinie (MyDir
) Schreiben der beabsichtigten Verwendung zu erreichen?
Mit freundlichen Grüßen, Danke!
https://plnkr.co/edit/W20Wvew326qsGfPU5H6v
Wenn das Ziel ist, dass Ihre Richtlinie Attribute hinzugefügt, die in den anderen Richtlinien führt die hinzugefügt wird, dann wird dies nicht funktionieren. Direktiven werden nur hinzugefügt, wenn der Selektor statisch hinzugefügtem HTML entspricht. Es gibt keine Möglichkeit, Anweisungen dynamisch hinzuzufügen. Ich kenne auch keinen anderen Weg, als die Funktionalität der anderen 2 Direktiven innerhalb einer Direktive neu zu implementieren. –