Ich habe mich gefragt, ob es möglich ist, die Input-Direktive von Angular zu erweitern? Ich möchte einige Listener an alle Eingabefelder auf einer Seite anhängen. Ich denke, dass Sie vorhandene Module mit $provide.decorate
dekorieren können, aber ich habe keine Ahnung, wie man das mit einer Direktive (und genauer mit der Input-Direktive) macht.
Kann mich also jemand in die richtige Richtung drängen? Einige Beispiele?
BEARBEITEN
Hier ist meine Richtlinie, die ich bis jetzt habe:
%Vor%Aus meiner Sicht kann ich das zu einem Eingabefeld wie folgt hinzufügen:
%Vor%Der Nachteil ist, dass ich diesen Listener für jedes Eingabefeld manuell in meinen Code einfügen muss. Daher wäre es sinnvoll, die vorhandene Eingabedirektive zu ändern, um diese Listener einzuschließen.
Hier ist eine kurze Beschreibung, wie Sie die eingebaute Angular input
-Direktive mit $provide.decorator
dekorieren können, wie Sie es selbst vorgeschlagen haben.
Vorteile dieses Ansatzes, wie ich es sehe:
Hier ist ein jsBin: Ссылка
Ich würde empfehlen, dass Sie sich diesen Artikel ansehen Ausführlich zu Dekorationsrichtlinien. Der Artikel behandelt die Erweiterung nicht nur der Verknüpfungsphasen, sondern auch die Steuerung und Vorverknüpfung der DOM-Manipulation. Eine sehr gute Lektüre!
Siehe Antwort auf diese Frage . Sie sprechen über ein paar verschiedene Optionen, um eine Direktive von $ provide auf eine Anweisung mit demselben Namen zu erweitern.
Dieser Link erklärt auch einige Techniken (unter "Richtlinien erweitern"): Ссылка
Tags und Links javascript angularjs