La maggior parte dei browser sembra consentire di creare qualsiasi tag elemento che ti piace e aggiungere qualsiasi nome di attributo che ti piace agli elementi. Ad esempio:In che modo AngularJS riesce a utilizzare tag e attributi di elementi HTML5 personalizzati?
<!DOCTYPE html>
<html>
<body>
<div my-attribute="has no data- prefix, but seems to behave like an attribute should">
<br/>
<hello-world style="display:block;background:#eee">Hello Everybody</hello-world>
<goodby-world style="background:#faa">Default display is inline</goodbye-world>
</div>
</body>
</html>
Quanto sopra viene visualizzato correttamente. Sembra che gli elementi non definiti si comportino in modo simile agli span. Sembra inoltre che AngularJS sfrutti i tag personalizzati con gli attributi &, in gran parte dipende da esso.
Ma, per quanto ho capito, fare quel genere di cose era un no-no, tranne nel caso degli attributi html5 personalizzati con il prefisso "data-".
Quindi, la mia domanda è: non è più un tabù creare i propri tag e/o nomi di attributi personalizzati? In altre parole, AngularJS si basa su stranezze non standard che non fanno realmente parte delle specifiche HTML5, ma funzionano comunque? Qualcuno in Google ha scoperto un capitolo segreto a lungo perduto della specifica html5? O sto totalmente fraintendendo qualcosa?
I quirk SONO una parte della specifica HTML5, quindi tutti i browser dovrebbero essere espulsi allo stesso modo, il che significa che anche il crap html come utilizzato da angular è compatibile con browser diversi nei browser HTML5. se vuoi convalidare, segui le specifiche. se ti interessa più delle caratteristiche angolari rispetto alla convalida, usa l'angolare. se vuoi entrambi, usa le classi o gli attributi-dati per guidare angolare invece di tag e attributi personalizzati. – dandavis