Zacząłem uczyć się o AngularJS i nie wiem, jakie są różnice między dyrektywami ng-app
i data-ng-app
.
angularjs
angularjs-directive
user1876508
źródło
źródło
Odpowiedzi:
Większość z tych odpowiedzi po prostu mówi, że szablon jest prawidłowym kodem HTML lub zgodnym z walidatorem HTML , bez wyjaśniania również, co te terminy oznaczają.
Nie wiem na pewno, ale zgaduję, że te warunki mają zastosowanie do programów walidacyjnych HTML, które skanują Twój kod pod kątem zgodności ze standardami - trochę jak kłaczki. Nie rozpoznają
ng-app
jako prawidłowego atrybutu. Oczekują, że atrybuty HTML inne niż domyślne będą poprzedzonedata-attribute_name_here
.Dlatego twórcy
AngularJS
stworzyli alternatywne nazwy dla swoich dyrektyw, które zawierajądata-
przed sobą znak przed nimi, aby programy walidatorów HTML „polubiły” je.źródło
Brak, jeśli chodzi o zachowanie środowiska uruchomieniowego, to tylko różne style dyrektyw nazewnictwa, jak opisano tutaj: http://docs.angularjs.org/guide/directive
Jak widać z lektury tego tekstu,
data-
może on zostać użyty do przejścia przez HTML testów walidatora HTML /źródło
Możesz zadeklarować kątową przestrzeń nazw
<html xmlns:ng="http://angularjs.org" ng-app>
źródło
W nowoczesnych przeglądarkach nie ma różnicy, ale w starszych IE nie będą działać, dopóki nie zadeklarujesz definiującej ją przestrzeni nazw XML.
Istnieje również różnica w walidacji polegająca na tym, że
ng-app
nie jest to prawidłowy XHTML i spowoduje, że Twoja strona internetowa nie przejdzie walidacji HTML. Angular pozwala na przedrostek swoich dyrektyw za pomocądata-
lubx-
zezwalanie na walidację.źródło
Możesz użyć data-ng- zamiast ng-, jeśli chcesz, aby kod HTML strony był prawidłowy.
To będzie rzucać błąd
To nie spowoduje błędu
źródło
Podstawowa różnica między tymi dwoma terminami polega na tym, że data-ng-app sprawdza poprawność kodu HTML, a druga nie. Funkcjonalność pozostaje taka sama. Aby uzyskać więcej informacji, możesz wypróbować w3Validator.
źródło
Absolutnie nie ma między nimi różnicy, z wyjątkiem tego, że niektóre walidatory HTML5 będą zgłaszać błąd we właściwości, takiej jak ng-app, ale nie zgłaszają błędu dla niczego, co ma prefiks data-, jak data-ng-app. Zatem używanie przedrostka danych z naszymi dyrektywami kątowymi jest dobre.
Nawet ty możesz używać dyrektyw kątowych na wymienione poniżej sposoby ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind
źródło