Angular Component: keine Vorlage ersetzen?

40

Es sieht so aus, als gäbe es im neuen AngularJS 1.5 -Komponentenkonzept keine "Ersetzen" -Option (wie es für Richtlinien der Fall war) .

Was würden Sie vorschlagen, wenn ich Tabellenzeile <TR> element als Komponente haben möchte? Ist es in Bezug auf gültiges HTML nicht möglich?

Wirkliches Beispiel: mailBox-Komponente enthält Mail-Komponenten. Durch Markup Mail-Box-Komponente ist Tabelle, und Mail-Box ist tr.

%Vor%

UPD : Diskussion über Richtlinien - Warum ersetzen? in AngularJS veraltet?

    
Stepan Suvorov 09.02.2016, 11:02
quelle

1 Antwort

21

Dies ist nicht mehr möglich, da das replace: true-Flag veraltet ist

Warum ist die Ersetzung in AngularJS veraltet?

Die replace: true-Flagge hatte mehr Probleme als Lösungen, weshalb sie entfernt wurde. Daher können Sie Anweisungen nicht mehr so ​​erstellen und ein gültiges table-tr-td-Markup bereitstellen.

Es gibt jedoch zwei Gründe, warum dies nicht so schlimm ist, wie es aussieht:

  1. Sie können alles tun, was Sie ohne table, tr, td usw. tun möchten. benutze einfach Elemente wie div, span usw. und ein paar CSS darauf

  2. Web-Komponenten (und Direktiven waren ein erster Versuch, zu simulieren Sie sind nicht dazu gedacht, solche kleinen Fragmente des Markups darzustellen. Sie sind eher als eine voll funktionsfähige Komponente tatsächlich gedacht etwas machen. also was auch immer du mit deinem tr machen willst, dass du Ich denke, es lohnt sich, eine Element-Richtlinie zu erstellen wahrscheinlich nicht.

Vielleicht können Sie stattdessen eine attribute-Direktive verwenden:

%Vor%

und Ihre my-mail-Anweisung macht die Magie auf dem tr-Element

    
Patrick Kelleter 11.02.2016, 14:22
quelle