AngularJS hakkında bilgi edinmeye başladım ve ng-app
ve data-ng-app
yönergeler arasındaki farkların ne olduğu konusunda kafam karıştı .
AngularJS hakkında bilgi edinmeye başladım ve ng-app
ve data-ng-app
yönergeler arasındaki farkların ne olduğu konusunda kafam karıştı .
Yanıtlar:
Bu yanıtların çoğu, BU terimlerin ne anlama geldiğini açıklamadan , basitçe şablonu geçerli HTML veya HTML Doğrulayıcı Uyumlu yapar diyor .
Kesin olarak bilmiyorum, ancak bu şartların, kodunuzu standartlara uygunluk açısından tarayan HTML doğrulama programları için geçerli olduğunu tahmin ediyorum - bir tür tiftik gibi. ng-app
Geçerli bir öznitelik olarak tanımıyorlar . Varsayılan olmayan HTML özniteliklerinin önüne geçilmesini beklerler.
data-attribute_name_here
.
Bu yüzden, yaratıcıları, HTML doğrulayıcı programlarının onları "beğenmesi" AngularJS
için yönergeleri için data-
önlerinde yer alan alternatif isimler yaratmışlardır .
Çalışma zamanı davranışı açısından hiçbiri, bunlar burada açıklandığı gibi yalnızca farklı adlandırma yönergeleridir: http://docs.angularjs.org/guide/directive
Direktiflerde ngBind gibi deve harfli isimler vardır. Yönerge, deve kasası adı yılan kasasına şu özel karakterlerle çevrilerek çağrılabilir:, - veya _. İsteğe bağlı olarak yönergenin önüne x- veya data- eklenebilir ve böylece HTML doğrulayıcısı uyumlu hale getirilebilir. İşte bazı olası yönerge adlarının bir listesi: ng: bind, ng-bind, ng_bind, x-ng-bind ve data-ng-bind.
Bunu okurken data-
görebileceğiniz gibi, HTML'nizin HTML doğrulayıcı testlerinden geçmesi için kullanılabilir /
Açısal ad alanını bildirebilirsiniz <html xmlns:ng="http://angularjs.org" ng-app>
Modern tarayıcılarda bir fark yoktur, ancak eski IE'lerde, onu tanımlayan bir XML ad alanı bildirmediğiniz sürece çalışmazlar.
Ayrıca ng-app
geçerli XHTML olmayan bir doğrulama farkı vardır ve web sayfanızın HTML doğrulamalarında başarısız olmasına neden olur. Angular, direktiflerinin önüne geçmenize data-
veya x-
doğrulamasına izin vermenize izin verir.
Sayfanızın HTML'sini geçerli kılmak istiyorsanız, ng- yerine data-ng- kullanabilirsiniz.
Bu olacak bir hata atmak
<div ng-app="">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
Bu olmaz bir hata atmak
<div data-ng-app="scope" data-ng-init="name='test'">
<p>Input something in the input box:</p>
<p>Name: <input type="text" data-ng-model="name"></p>
<p data-ng-bind="name"></p>
</div>
Bu iki terim arasındaki temel fark, data-ng-app'in HTML'yi doğrulaması ve ikincisinin yapmamasıdır. Daha fazla referans için w3Validator'ı deneyebilirsiniz.
Kesinlikle ikisi arasında bir fark yoktur, ancak bazı HTML5 doğrulayıcılarının ng-app gibi bir özelliğe bir hata atması dışında, data-ng-app gibi veri ön ekli herhangi bir şey için hata vermezler. Bu nedenle, açısal yönergelerimizle veri öneki kullanmak iyidir.
Açısal yönergeleri aşağıda belirtilen şekillerde kullanabilirsiniz ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind