Ich arbeite in einem kleinen Team, baue AngularJS ein und versuche, einige grundlegende Standards und Best Practices beizubehalten. vor allem, weil wir mit Angular relativ neu sind.
Meine Frage bezieht sich auf Richtlinien. Genauer gesagt, die restrict
Optionen.
Einige von uns verwenden restrict: 'E'
also <my-directive></my-directive>
in der HTML.
Andere verwenden restrict: 'A'
und haben <div my-directive></div>
in der HTML.
Dann können Sie natürlich restrict: 'EA'
eines der oben genannten verwenden und verwenden.
Im Moment ist es keine große Sache, aber wenn dieses Projekt so groß ist, wie es nur geht, möchte ich, dass jeder, der es sich ansieht, leicht versteht, was los ist.
Gibt es Vor- / Nachteile für die Attribut- oder Elementmethode?
Gibt es Fallstricke, die wir kennen sollten, wenn wir "say element" anstelle von "attribute" wählen?
quelle
einschränken dient zum Definieren des Direktiventyps und kann
A
(Attribut),C
(Klasse),E
(Element) undM
(coMment) sein. Nehmen wir an, der Name der Direktive lautetDoc
:quelle
Die Einschränkungsoption ist normalerweise auf Folgendes festgelegt:
Hier ist der Dokumentationslink .
quelle
Element wird in IE8 nicht sofort unterstützt. Sie müssen einige Arbeiten ausführen, damit IE8 benutzerdefinierte Tags akzeptiert.
Ein Vorteil der Verwendung eines Attributs gegenüber einem Element besteht darin, dass Sie mehrere Anweisungen auf denselben DOM-Knoten anwenden können. Dies ist besonders praktisch für Formularsteuerelemente, bei denen Sie Beschriftungen usw. mit zusätzlichen Attributen hervorheben, deaktivieren oder hinzufügen können, ohne das Element in eine Reihe von Tags einschließen zu müssen.
quelle
Wie ich weiß, ist eine der Fallstricke das IE-Problem mit benutzerdefinierten Elementen. Wie aus den Dokumenten zitiert :
quelle
Falle:
<my-directive></my-directive>
funktioniert unter IE8 nicht ohne Problemumgehung ( https://docs.angularjs.org/guide/ie ).<div data-my-directive="ValueOfTheFirstParameter"></div>
An Stelle von:
<my-directive my-param="ValueOfTheFirstParameter"></my-directive>
Wir nicht verwenden benutzerdefinierte HTML - Elemente, denn wenn dieses Bild 2 Fakten.
Jede Direktive von Drittanbietern kann auf zwei Arten geschrieben werden:
<my-directive></my-directive>
oder
<div data-my-directive></div>
macht das gleiche.
quelle
2 Probleme mit Elementen:
Attribute verwenden.
quelle
replace
Attribut zutrue
?