Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previa | |
| unidades:11_rootscope:01_watch [2014/10/25 09:47] – admin | unidades:11_rootscope:01_watch [2014/10/25 10:26] (actual) – [La importancia de $watch] admin |
|---|
| Si lo que realmente queremos es saber cuando ha cambiado el valor de una propiedad de **modelo**, ¿Porque usar el evento ''onChange'' para comprobar sise ha modificado? ¿Que ocurre si modificamos la vista? Hay que recordar poner siempre ese ''onChange'' y por otro lado y si cambiamos directamente desde JavaScript el valor haciendo una asignación a la propiedad. Con ''onChange'' no lo podríamos detectar. Es decir que ''$watch'' es mucho mas útil que los eventos del DOM ya que nos permite detectar siempre el cambio independientemente desde donde se haya producido. | Si lo que realmente queremos es saber cuando ha cambiado el valor de una propiedad de **modelo**, ¿Porque usar el evento ''onChange'' para comprobar sise ha modificado? ¿Que ocurre si modificamos la vista? Hay que recordar poner siempre ese ''onChange'' y por otro lado y si cambiamos directamente desde JavaScript el valor haciendo una asignación a la propiedad. Con ''onChange'' no lo podríamos detectar. Es decir que ''$watch'' es mucho mas útil que los eventos del DOM ya que nos permite detectar siempre el cambio independientemente desde donde se haya producido. |
| |
| | <note important> |
| | Siempre que puedas utiliza ''$watch'' en vez de eventos de los tag HTML como ''onChange'' , etc, ya que así estará mas separado el modelo de la vista. |
| | </note> |
| ===== Comparando el objeto ===== | ===== Comparando el objeto ===== |
| ¿Como sabe AngularJS que ha cambiado el valor de una propiedad? La respuesta puede parecer sencilla, con un simple "!==". Eso funciona muy bien con datos escalares como números o texto pero no funciona tan bien con objetos. Si comparamos 2 objetos distintos pero con los mismos valores,¿deberían ser iguales o distintos? Angular al usar "!==" serian distintos. | ¿Como sabe AngularJS que ha cambiado el valor de una propiedad? La respuesta puede parecer sencilla, con un simple "!==". Eso funciona muy bien con datos escalares como números o texto pero no funciona tan bien con objetos. Si comparamos 2 objetos distintos pero con los mismos valores,¿deberían ser iguales o distintos? Angular al usar "!==" serian distintos. |