2014-07-24 11 views
8

Okey, więc niedawno, znalazłem to: https://angularjs.org/są niestandardowe atrybuty html bez danych- * prefix jest prawidłowym atrybutem?

Zauważyłem, że używają niestandardowych atrybutów przedrostek "ng-"

z artykułów, jak: http://html5doctor.com/html5-custom-data-attributes/

lub nawet stackoverflow: https://stackoverflow.com/a/17091848/2803917

I jest ich o wiele więcej, jedynymi WAŻNYMI (im nie mówię o tym, że działają tak czy inaczej) przedrostkiem do użycia jest "data-".

Czy ktoś mógłby mi wytłumaczyć, jak to się dzieje, że te miliony projektów i firm używa nieprawidłowego prefiksu dla niestandardowych atrybutów html i nikt się tym nie przejmuje? A może czegoś brakuje?

Naprawdę doceniam niektóre myśli, a nawet źródła informacji, a nie tylko takie teksty, jak "wszyscy to robią" i "nie zawracaj sobie głowy i zostaw to".

+1

Rzetelnie chociaż, co jest tam inna odpowiedź? Niestandardowe atrybuty, które nie mają prefiksu data- *, są w końcu niestandardowe. – BoltClock

+0

Nie są "nieważne", ale nie są standardowe. – CENT1PEDE

Odpowiedz

5

Niestandardowe atrybuty muszą rozpoczynać się od danych- lub x- lub są nieprawidłowe. Może to spowodować problemy w przyszłych przeglądarkach, a weryfikatory HTML powiedzą, że są nieprawidłowe.

Patrz: What is the difference between ng-app and data-ng-app?

oraz: http://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes

+0

Tak, mam rację, są one nieważne, prawda? – ExClouds

+0

Tak ............ – Richard

+1

Należy pamiętać, że niektóre js frameworków, które używają podobnego podejścia - np. Vue js używa ich atrybutów "v-" - dynamicznie usuń te atrybuty (cóż, zamień je na coś użytecznego) przy ładowaniu strony, zanim nic nie zostanie pokazane przez przeglądarkę, dzięki czemu wynikowy html będzie całkowicie poprawny. Sądzę, że Angular robi to samo. Przeglądarki nie powinny tak naprawdę dbać o HTML, który nie jest aktywnie zawarty/wyświetlany w DOM. – Arthur

Powiązane problemy