event cloak boton javascript model-view-controller angularjs

javascript - cloak - ng-init



¿AngularJS es realmente MVC? (4)

La idea central detrás de MVC es que tiene una separación clara en su código entre la administración de sus datos (modelo), la lógica de la aplicación (controlador) y la presentación de los datos al usuario (vista). La vista obtiene datos del modelo para mostrar al usuario. Cuando un usuario interactúa con la aplicación haciendo clic o escribiendo, el controlador responde cambiando los datos en el modelo. Finalmente, el modelo notifica a la vista que se ha producido un cambio para que pueda actualizar lo que muestra. En aplicaciones angulares , la vista es el Modelo de objetos de documento (DOM), los controladores son clases de JavaScript y los datos de modelo se almacenan en propiedades de objeto.

Estoy viendo ejemplos en la página de inicio de AngularJS , específicamente "Add Some Control". No entiendo muy bien cómo se correlaciona con el patrón MVC.

Está más o menos claro que la plantilla (index.html) puede considerarse como la vista, los objetos construidos por TodoCtrl desde todo.js como el controlador, pero ¿dónde está el modelo? Los atributos como ng-model asignan a algunas partes internas del marco y no exponen directamente un objeto que podríamos llamar un modelo.

¿Es correcto llamar a AngularJS un marco de MVC?


Los atributos se asignan a la variable de ámbito definida en el controlador. Por ejemplo, si tiene algunos objetos JS que representan su lógica comercial, puede ponerlos en la variable de ámbito y, a continuación, los atributos pueden asignarse al modelo en sí en lugar de algunos valores arbitrarios en la variable de ámbito.


No he leído en Angular. Sin embargo, tenga en cuenta que MVC "verdadero" significa que el Modelo contiene lógica de negocios, el Controlador se encarga de comunicar la entrada del usuario al Modelo, y la Vista obtiene sus propios datos del Modelo. Muchos de los llamados frameworks MVC en realidad no están implementando MVC de la manera correcta: están sobrecargando el Controlador con mucha responsabilidad, como hacer que el Controlador sea responsable también de actualizar la Vista. Eso no es lo que el Controlador tenía la intención de hacer, y en tales casos se obtiene lo que se llama un "Controlador de grasa". Existe una creencia errónea entre muchos desarrolladores web de que la Vista es simplemente una "plantilla". Esto es verdadero y falso; Es una plantilla pero obtiene sus propios datos directamente del Modelo, no a través del Controlador.

Pero como comencé diciendo: todavía no he leído en Angular, pero es posible que lo haya hecho y debería poder averiguar si Angular es verdaderamente un framework MVC al observar lo que hacen los diferentes Componentes en el Framework.


Si se considera que un elemento que puede almacenar datos en un objeto es un modelo, se podría considerar que todos los frameworks frontales (view) tienen un modelo. Todos ellos pueden almacenar datos en objetos y presentarlos en la vista. Creo que llamar angular a mvc es realmente una estratagema de marketing, tratando de hacer que angular parezca más de lo que es.

Ver: https://www.pluralsight.com/blog/software-development/tutorial-angularjs-mvc-implementation

En el controlador, es donde dan su ejemplo de angular como modelo. Si no puede ayudar en el almacenamiento de datos persistentes, no es mucho un modelo.