Ho iniziato a conoscere AngularJS e sono confuso su quali siano le differenze tra le direttive ng-app
e data-ng-app
.
Ho iniziato a conoscere AngularJS e sono confuso su quali siano le differenze tra le direttive ng-app
e data-ng-app
.
Risposte:
La maggior parte di queste risposte sta semplicemente dicendo che rende il modello HTML valido o compatibile con HTML Validator , senza spiegare nemmeno cosa significano QUESTI termini.
Non lo so per certo, ma suppongo che questi termini si applichino ai programmi di convalida HTML che eseguono la scansione del codice per verificarne la conformità agli standard, un po 'come lanugine. Non riconoscono ng-app
come un attributo valido. Si aspettano che gli attributi HTML non predefiniti vengano preceduti
data-attribute_name_here
.
Quindi, i creatori di AngularJS
hanno creato nomi alternativi per le loro direttive che includono i data-
davanti a loro in modo che i programmi di validazione HTML li "apprezzino".
Nessuno in termini di comportamento di runtime, questi sono solo stili diversi di direttive di denominazione come descritto qui: http://docs.angularjs.org/guide/directive
Le direttive hanno nomi con involucro di cammello come ngBind. La direttiva può essere invocata traducendo il nome del caso di cammello in caso di serpente con questi caratteri speciali:, - o _. Facoltativamente, la direttiva può essere preceduta da x- o data- per renderla conforme a HTML validator. Ecco un elenco di alcuni dei possibili nomi delle direttive: ng: bind, ng-bind, ng_bind, x-ng-bind e data-ng-bind.
Come puoi vedere dalla lettura di questo, data-
puoi usarlo per superare i test di validazione HTML HTML /
È possibile dichiarare lo spazio dei nomi angolare <html xmlns:ng="http://angularjs.org" ng-app>
Nei browser moderni non c'è differenza, ma negli IE più vecchi non funzioneranno se non si dichiara uno spazio dei nomi XML che lo definisce.
Esiste anche una differenza di convalida in quanto ng-app
non è XHTML valido e causerà la mancata convalida HTML della pagina Web. Angolare ti consente di aggiungere il prefisso alle sue direttive data-
o x-
di consentirne la convalida.
Puoi usare data-ng-, invece di ng-, se vuoi rendere valido l'HTML della tua pagina.
Questo genererà un errore
<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>
Questo non genererà un errore
<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>
La differenza di base tra questi due termini è che data-ng-app convalida l'HTML mentre quest'ultimo no. La funzionalità rimane invariata. Per ulteriori riferimenti, puoi provare w3Validator.
Assolutamente non c'è alcuna differenza tra i due, tranne per il fatto che alcuni validatori HTML5 generano un errore su una proprietà come ng-app, ma non generano un errore per qualcosa con prefisso data, come data-ng-app. Quindi usare il prefisso dei dati con le nostre direttive angolari è buono.
Anche tu puoi usare le direttive angolari nei modi sotto menzionati ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind