angularjs - may - ng-controller
¿Cuál es la diferencia entre ng-app y data-ng-app? (7)
Empecé a aprender sobre AngularJS y estoy confundido sobre cuáles son las diferencias entre las directivas ng-app
y data-ng-app
.
Absolutamente no hay diferencia entre los dos, excepto que ciertos validadores de HTML5 lanzarán un error en una propiedad como ng-app, pero no arrojan un error para nada con el prefijo de datos, como data-ng-app. Entonces, usar prefijo de datos con nuestras directivas angulares es bueno.
Incluso usted puede usar directivas angulares en las formas mencionadas a continuación ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind
En los navegadores modernos no hay diferencia, pero en 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 validaciones de HTML. Angular le permite prefijar sus directivas con data-
o x-
para permitir su validación.
La diferencia básica entre estos dos términos es que data-ng-app valida el HTML mientras que el segundo no. La funcionalidad permanece igual. Para obtener más información, puede probar w3Validator.
La mayoría de estas respuestas simplemente dicen que hace que la plantilla sea válida en HTML o en Validador de HTML , sin explicar qué significan esos términos.
No lo sé con certeza, pero supongo que estos términos se aplican a los programas de validación de HTML que escanean el código para verificar el cumplimiento de los estándares, algo así como pelusa. No reconocen ng-app
como un atributo válido. Esperan que los atributos HTML no predeterminados tengan un prefacio
data-attribute_name_here
.
Por lo tanto, los creadores de AngularJS
han creado nombres alternativos para sus directivas que incluyen los data-
frente a ellos, para que los programas de validación de HTML les "agraden".
Ninguno en términos de comportamiento en el tiempo de ejecución, esos son solo diferentes estilos de directivas para nombrar, como se describe aquí: http://docs.angularjs.org/guide/directive
Las directivas tienen nombres de camello como ngBind. La directiva se puede invocar traduciendo el nombre de la caja de camello al caso de serpiente con estos caracteres especiales:, -, o _. Opcionalmente, la directiva puede tener el prefijo x- o data- para que sea compatible con el validador de 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, los data-
se pueden usar para hacer que su HTML pase pruebas de validador de HTML /
Puede declarar el espacio de nombre angular <html xmlns:ng="http://angularjs.org" ng-app>
Puede usar data-ng-, en lugar de ng-, si desea que el HTML de su página sea válido.
Esto arrojará 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>