He trabajado en Angular 1. Claramente tenía un controlador que actuaba como mediador entre View y Model. Me di cuenta de que en Angular 2 no tenemos ningún controlador como tal.
Entonces, ¿podemos seguir llamando a Angular 2 como un marco MVC? Sé que MVC es un patrón de diseño y lo implementas en cualquier idioma. Pero, con respecto a Angular 1, escuché de muchos que es un marco MVC, y la mayoría de los ejemplos que vi decían claramente que Angular 1 es MVC y que el controlador separa el modelo de la vista. Entonces, me preguntaba, ahora que tiene componentes en Angular2, ¿podemos seguir llamándolo MVC? O como los Componentes en sí mismos siguen el paradigma MVC, porque veo que en cada Componente separamos la Vista y los Datos y usamos el enlace, tal vez aún podamos llamarlo MVC.
Angular 2 es más una arquitectura basada en componentes. Puede asumir todo como componente, como directivas, servicios, etc. Si bien las directivas y los servicios son en realidad para el soporte de los componentes básicos, también se definen de manera similar. Un componente base contiene dependencias, detalles de vista y una declaración de clase que puede considerarse como controlador. Entonces, un componente bien definido contiene un conjunto de arquitectura MVC.
por ejemplo (angular 2 versión alfa):
import {Component, View, bootstrap, provide, NgClass} from 'angular2/angular2'; @Component({ selector : "my-home" }) @View({ directives : [NgClass, EditSettingPanel], styles: ['.hidden{ display : none} .visible{ display : block}'], templateUrl : "views/blog-panel.html" }) export class home { } }En el ejemplo anterior, puede ver que la clase "inicio" puede asumirse como controlador, la Vista se escribe con el decorador @View. La personalización del componente la proporciona el decorador @component. También puedes ver diferentes prácticas de inyección de dependencias.
EDITAR :: Ejemplo (versión angular actual 2/4)
import { Component } from '@angular/core'; @Component({ selector: 'custom-component', templateUrl: './template.html', styleUrls: ['./style.scss'], }) export class CustomComponent {}En pocas palabras, angular 2 es un marco MVC basado en componentes.
Los componentes y directivas son los controladores, la plantilla (HTML) procesada por Angular y el navegador es la vista, y si no combina el modelo con el controlador, obtiene un patrón MVC.
Angular 2 se sigue internamente en MVC porque su componente sigue la arquitectura MVC completa.
Pero si hablas de lo que hacemos en angular2 es MV*. Puede ser MVVM o MVC. No es completamente MVC.