angular - 是angular2 mvc吗?

标签 angular

我在 Angular 1 工作过。它显然有一个 Controller 充当 View 和模型之间的中介。我意识到在 Angular 2 中我们没有这样的 Controller 。

那么我们还能把 Angular 2 称为 MVC 框架吗?我知道 MVC 是一种设计模式,您可以用任何语言实现它。但是,对于Angular 1,我听很多人说它是一个MVC框架,而且我看到的大多数例子都清楚地说Angular 1是MVC,Controller将Model和View分开。所以,我想知道,既然 Angular2 中有了组件,我们还能称它为 MVC 吗?或者作为组件本身遵循 MVC 范式,因为我确实看到在每个组件中我们将 View 和数据分开并使用绑定(bind),也许我们仍然可以将其称为 MVC。

最佳答案

Angular 2 更像是一个基于组件的架构。你可以假设一切都是组件,比如指令、服务等等。 虽然指令和服务实际上是为了支持基本组件,但它们也以类似的方式定义。 基础组件包含依赖项、 View 详细信息和可被视为 Controller 的类声明。 因此,一个定义良好的组件包含一套 MVC 架构。

例如(angular 2 alpha 版本):

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 {
}

}

在上面的例子中你可以看到类“home”可以假设为 Controller ,View是用@View装饰器编写的。组件定制由@component 装饰器给出。 您还可以看到不同的依赖项注入(inject)实践。

编辑: 示例(当前 Angular 2/4 版本)

import { Component } from '@angular/core';

@Component({
  selector: 'custom-component',
  templateUrl: './template.html',
  styleUrls: ['./style.scss'],
})
export class CustomComponent {}

简单来说,angular 2是一个基于组件的MVC框架。

关于angular - 是angular2 mvc吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762515/

相关文章:

angular - RxJS forkJoin 不发出值

javascript - 如何用 Protractor 选择组件元素?

html - 在我的 Angular 应用程序中使用 api 调用值作为 div 的背景图像

java - Angular2 Spring启动日期序列化

Angular - 如何使用 ngFor 在选择选项之间添加分隔线?

javascript - 如何将排序后的数据分配给不可变对象(immutable对象)

javascript - 首次加载组件时更改 mat-grid-list 中的列数

angular - 使用 Angular 5 的 IE 11 兼容性错误

html - HTML5音频搜寻无法正常工作。引发响应内容长度不匹配异常

javascript - 在缩放 Canvas 时,toDataURL 只返回 Canvas 的可见部分,而不是 Canvas 尺寸之外的部分