AngularJS: Eingabeanweisung erweitern

8

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.

    
23tux 12.03.2014, 13:07
quelle

3 Antworten

0

Sie können jede Richtlinie leicht erweitern - einschließlich der Eingabe-Anweisung. Hier ist ein schnelles Beispiel für das Hinzufügen einer Klasse zu einer Direktive.

    
SnapShot 12.03.2014, 13:15
quelle
18

Hier ist eine kurze Beschreibung, wie Sie die eingebaute Angular input -Direktive mit $provide.decorator dekorieren können, wie Sie es selbst vorgeschlagen haben.

%Vor%

Vorteile dieses Ansatzes, wie ich es sehe:

  1. Es ist mehr TROCKEN, als eine weitere Direktive hinzuzufügen, um das Verhalten zu verbessern.
  2. Es ist eine tatsächliche Erweiterung des Verhaltens von Drittanbietern.
  3. In den meisten Fällen brauchen Sie nichts über die interne Umsetzung der Richtlinie (oder der Dienstleistung, die Sie gerade dekorieren) zu wissen.

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!

    
Kasper Lewau 23.07.2014 08:15
quelle
3

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"): Ссылка

    
Patrick 12.03.2014 13:23
quelle

Tags und Links