AngularJS: Wie kann man mehrere Anweisungen umwandeln?

8

(1) Ich habe eine umschließende Anweisung namens portlet , die ihren Inhalt übernimmt und in einen Standardcode einfügt. ZB:

%Vor%

durchläuft die Vorlage von portlet , also:

%Vor%

Und wird:

%Vor%

(2) Ich habe zwei weitere Direktiven, dyn-form und dyn-form-field . Auf diese Weise beschrieben:

%Vor%

dyn-form 's Vorlage:

%Vor%

Jede Vorlage dyn-field generiert den HTML-Code für die Erstellung der Label / Felder dafür. Der ursprüngliche Code wird also in etwa so übersetzt:

%Vor%

(3) Hier ist das Problem. Ich möchte eine dritte Direktive verwenden, dyn-form-portlet , um den Boilerplate-Code zu generieren, um einige Buttons über jedem Formular anzuzeigen, dann ein Portlet anzuzeigen und das dyn-form in das Portlet zu setzen. Dies ist, wie ich das versuche:

%Vor% Die Vorlage von

dyn-form-portlet sieht folgendermaßen aus:

%Vor%

Theoretisch sollte dies funktionieren, d. h. <dyn-form> sollte innerhalb von <portlet> , <dyn-form-field> s innerhalb von <dyn-form> und so weiter platziert werden. Aber wenn ich das ausführe, sehe ich nur die Schaltflächen, die von dyn-form-portlet und dem Code für portlet angezeigt werden, aber portlet ist leer und das Formular wird nicht angezeigt.

Mache ich etwas falsch oder ist das ein Fehler?

    
Click Upvote 28.08.2013, 19:44
quelle

1 Antwort

5

Ich habe es geschafft, das zu beheben. Ich habe transclude : 'element' zusammen mit replace : true auf portlet Direktive verwendet und ich habe priority höher als andere Direktiven angegeben. Der Grund, warum ich das getan habe, ist eher ein Gefühl als ein tiefes Wissen über Anuglas Inneres.

Über den ersten Teil transclude : 'element' wird verwendet, weil

  

'element' - übergibt das gesamte Element einschließlich aller mit niedrigerer Priorität definierten Direktiven.

Ersetzen wird verwendet, weil es von dem, was ich gesehen habe, immer verwendet wird, wenn transclude auf element gesetzt ist. Priorität hatte meine Ahnung.

Hier ist die PLNKR Ссылка

Dies ist wahrscheinlich nicht die Antwort, nach der Sie gesucht haben, aber ich müsste tief in eckige Anweisungen schauen, um wirklich zu verstehen, was vor sich geht. Wie auch immer, es ist kein Fehler, es ist nur eine schlechte Dokumentation.

    
Marek 30.09.2013 20:35
quelle

Tags und Links