So erstellen Sie wiederverwendbare AngularJs-Anweisungen, die vorhandene Anweisungen kopieren

8

Ich bin dabei, einige wiederverwendbare Direktiven für allgemeine Steuerelemente in unserer Anwendung zu erstellen.

Zum Beispiel haben wir ein snip-it von html für Anzahl Textfelder

%Vor%

Von dort habe ich angefangen, meine Direktive zu erstellen:

%Vor%

Was macht das folgende <html/>

%Vor%

Jetzt ist die ng-model auf der <div/> , was nicht das ist, was ich will, also muss ich einen Bereich erstellen und ihn an die ngModel anhängen und die Dinge sind wieder glücklich.

%Vor%

Alles funktioniert, aber sagen wir, ich möchte auch eine ngChange -Direktive hinzufügen, bedeutet das, dass ich meine scope erneut ändern muss, um ngChange: "=" einzuschließen? Wie so

%Vor%

Die Frage

Muss ich den Direktivenbereich ständig ändern, um eine unendliche Anzahl von anderen Direktiven zu enthalten, die ich eventuell benötige? Oder gibt es eine Möglichkeit, die Direktiven für das <amount/> -Element nicht in die <div/> sondern in die <input/>

zu kopieren

z. B.

%Vor%

Geht zu

%Vor%

Kann etwas während der Pre / Post-Kompilierung gemacht werden, um sie zu kopieren oder mache ich das alles falsch?

Aktualisieren

Ich konnte etwas erreichen, indem ich einfach alle Attribute überschlinge und den Dienst $compile() verwende. Es funktioniert, aber ist das korrekt?

%Vor%

Gegeben die folgende <html/> , wenn Sie eine Anweisung zu <amount/> hinzufügen, wird sie in die <input/>

kopiert %Vor%

aktualisierte jsfiddle

    
Mark Coleman 07.08.2013, 19:10
quelle

1 Antwort

-1

Binden Sie einen Controller und injizieren Sie $scope einfach.

%Vor%     
Dan Kanze 07.08.2013 19:32
quelle