2013-06-17 9 views
14

Dokumentacja AngularJS saysOptionally the directive can be prefixed with x-, or data- to make it HTML validator compliant..Jakie są zalety korzystania z przedrostka danych zamiast przedrostka x- dla atrybutów niestandardowych?

przykład znaczniki:

  1. prefiks: <input ng-model="name">
  2. data-: <input data-ng-model="name">
  3. x-: <input x-ng-model="name">

x- prefiks szybciej typu niż data-, ale ćwiczenia mam widziałem używany bez prefiksu lub data-, więc moje pytanie brzmi: czy są jakieś powody, dla których mogę chcieć używać data- zamiast x-?

Odpowiedz

11

Zaletą korzystania z data- prefiks raczej niż x- prefiksem jest data- prefiksy są gwarantowane pozostają dostępne dla autorów, jak im się podoba, podczas gdy x- prefiksem pewnego dnia być wykorzystywane do celów konkretnej przeglądarki, być może sprzeczne z Twój. Pamiętaj, że x- nie są zgodne z HTML5.

+0

Ale SĄ zgodne z HTML 5.1 –

+4

@richremerer, nie, 11 sierpnia 2013 wersja [HTML 5.1 Nightly] (http://www.w3.org/html/wg/drafts/html/master/) nadal mówi 'x -' nie należy używać w dokumencie i dodaje wyraźną uwagę, że są niezgodne. –

+0

+1 Dla dokładnego odsyłacza do odnośnika;) dzięki! –

8

data- to standardized part . Semantycznie to najlepsza droga.

+3

Zawiera również określone implementacje DOM, do których po prostu nie można uzyskać niestandardowych prefiksów. – BoltClock

+0

Z definicji takie atrybuty nie mają zdefiniowanej * semantyki *. –

+0

Z [spec] (http://www.w3.org/html/wg/drafts/html/master/dom.html#embedding-custom-non-visible-data-with-the-data-%2a- atrybuty), "Niestandardowe atrybuty danych służą do przechowywania niestandardowych danych prywatnych do strony lub aplikacji, dla których nie ma już bardziej odpowiednich atrybutów lub elementów." Znacznie bardziej semantyczny (tj. _meaningful_) do używania 'data-attr' dla danych niestandardowych niż do używania' x-'lub cokolwiek innego. –

0

Aby uniknąć konfliktów między atrybutami aplikacji i przyszłymi atrybutami, które można zdefiniować w HTML, w3.org zdefiniował i znormalizował określony schemat, atrybut data-*. Zobacz the norm.

używać go

  • aby zmniejszyć ryzyko niekompatybilności
  • aby inni programiści i narzędzia uznają, że te atrybuty zawierają danych określonych aplikacji

Poza tym, stosując znormalizowany atrybut danych pozwala użyj właściwości element.dataset, a niektóre biblioteki, na przykład jQuery, udostępniają określone narzędzia.

Powiązane problemy