¿Dónde poner los datos del modelo y el comportamiento? [tl; dr; Usar Servicios]


Estoy trabajando con AngularJS para mi último proyecto. En la documentación y tutoriales todos los datos del modelo se colocan en el ámbito del controlador. Entiendo que tiene que estar allí para estar disponible para el controlador y, por lo tanto, dentro de las vistas correspondientes.

Sin embargo, no creo que el modelo deba implementarse allí. Podría ser complejo y tener atributos privados, por ejemplo. Además, uno podría querer reutilizarlo en otro contexto / aplicación. Poniendo todo en el el controlador rompe totalmente el patrón MVC.

Lo mismo se aplica al comportamiento de cualquier modelo. Si usara la arquitectura DCI y separara el comportamiento del modelo de datos, tendría que introducir objetos adicionales para mantener el comportamiento. Esto se haría introduciendo roles y contextos.

Por supuesto, los datos y el comportamiento del modelo podrían implementarse con objetos javascript simples o cualquier patrón de "clase". Pero, ¿cuál sería la forma AngularJS de hacerlo? Utilizar los servicios?

Así que todo se reduce a esta pregunta:

¿Cómo implementar modelos desacoplados del controlador, siguiendo las mejores prácticas de AngularJS?


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52