He comenzado a aprender sobre AngularJS y estoy confundido acerca de cuáles son las diferencias entre las directivas ng-app
y data-ng-app
.
He comenzado a aprender sobre AngularJS y estoy confundido acerca de cuáles son las diferencias entre las directivas ng-app
y data-ng-app
.
Respuestas:
La mayoría de estas respuestas simplemente dicen que HTML de plantilla es válido o que cumple con el Validador de HTML , sin explicar tampoco lo que significan ESOS términos.
No estoy seguro, pero supongo que estos términos se aplican a los programas de validación HTML que escanean su código para cumplir con los estándares, algo así como pelusa. No se reconocen ng-app
como un atributo válido. Esperan que los atributos HTML no predeterminados sean precedidos por
data-attribute_name_here
.
Por lo tanto, los creadores de AngularJS
han creado nombres alternativos para sus directivas que incluyen el data-
frente de ellos para que los programas de validación HTML "les gusten".
Ninguno en términos del comportamiento de tiempo de ejecución, esos son solo diferentes estilos de directivas de nombres como se describe aquí: http://docs.angularjs.org/guide/directive
Las directivas tienen nombres en camello como ngBind. La directiva se puede invocar traduciendo el nombre del caso de camello en un caso de serpiente con estos caracteres especiales:, - o _. Opcionalmente, la directiva puede tener como prefijo x- o data- para que sea compatible con el validador HTML. Aquí hay una lista de algunos de los posibles nombres de directivas: ng: bind, ng-bind, ng_bind, x-ng-bind y data-ng-bind.
Como puede ver al leer esto, data-
puede usarse para hacer que su HTML pase las pruebas de validación de HTML /
Puedes declarar el espacio de nombres angular <html xmlns:ng="http://angularjs.org" ng-app>
En los navegadores modernos no hay diferencia, pero en los IE más antiguos, no funcionarán a menos que declare un espacio de nombres XML que lo defina.
También hay una diferencia de validación en que ng-app
no es XHTML válido, y hará que su página web falle en las validaciones HTML. Angular le permite prefijar sus directivas con data-
o x-
permitirle validar.
Puede usar data-ng-, en lugar de ng-, si desea que su página HTML sea válida.
Esto se generará un error
<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>
Esto no arrojará un error
<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 diferencia básica entre estos dos términos es que data-ng-app valida el HTML mientras que el último no. La funcionalidad sigue siendo la misma. Para más referencia puede probar w3Validator.
Absolutamente no hay diferencia entre los dos, excepto que ciertos validadores HTML5 arrojarán un error en una propiedad como ng-app, pero no arrojan un error para cualquier cosa con el prefijo data-, como data-ng-app. Por lo tanto, usar el prefijo de datos con nuestras directivas angulares es bueno.
Incluso puede usar las directivas angulares de las formas mencionadas a continuación ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind