Angular和AngularJS之间的关系?
的有关信息介绍如下:
Angular 和 AngularJS 是两个独立的产品:
官方的名称用法指导在 PRESS KIT - Angular Docs。
Marketing/Branding 部分其实只是单纯的设定,不需要逻辑,所以记住就好。
最初 Google 提供了 AngularJS 和 AngularDart 两个框架(或者叫一个框架的两个实现?),分别用于 JavaScript 和 Dart 的 Web 开发。(关于 AngularJS 的名称问题在 AngularJS - FAQ 中有明确阐述,整个官网中都使用的是 AngularJS 这个正式名称)
Google 曾经计划基于 Web Components 技术重写 AngularJS 1.x,从而推出全新的 AngularJS 2.0,不过这个想法只在早期文档中存在,从未真正实现过。早在开发过程中,这个设计就已经被完全推翻掉了,新的框架也已经逐步不再使用 AngularJS 这个 Brand。
在一段时间内,谷歌曾经试图默许使用 Angular 这个新 Brand 来包含已有的 AngularJS Brand(即 AngularJS 1.x 也可以被成为 Angular 1.x,而 2+ 仅称为 Angular。注意是包含而非取代,即原框架正式名称始终为 AngularJS),来实现无缝过度。事实上民间很早就使用 Angular 作为 AngularJS 的简称了,所以这个做法影响并不大,毕竟不是所有人都天天在看官方博客。
随着名称混淆带来的各种问题,之后谷歌开始重新强调使用框架正式名称,即 https://github.com/angular/angular.js 中的项目称为 AngularJS,https://github.com/angular/angular 中的项目称为 Angular。
关于「2」的存在与否:
从相关的记录来看名称中不带「2」是发布前就已经确立的,但是由于「Angular2」的概念已被外部广泛使用,并且官方并没有第一时间积极引导,导致很多人产生了 4.0 开始才抛弃「Angular2」这个称谓的误解。
仓库使用上:
不过 Angular 的设计仍然参考了很多 AngularJS 和 Web Components (pre-V0?)中的理念,AngularJS 的 DI 自然不用说,ng-content 和 ng-template(早期版本中就叫 template)几乎是完全抽象的 Web Components 中的 content(已移除)和 template,不过实现上已经没有联系。
Angular 的核心目标就是替代 AngularJS,Google 官方也多次表示,只有等 Angular 的用户数量全面超过 AngularJS 之后才会停止对 AngularJS 的维护。
Angular 和 AngularJS 的 Repo 同位于 Angular 这个 Organization 下。Angular 从 AngularJS 中继承了大部分的开发团队成员,并且现有的 Angular Repo 也是复用的原先计划中的 AngularJS 2.0 Repo(一步步重写得到,虽然现在可能一行原有的代码都不剩)。
Angular 原生提供对 AngularJS 的无缝兼容方案 —— ngUpgrade。
开发语言上:
大部分原有的 AngularJS 社区也都接纳 Angular 的内容,新的 Angular 社区可能不那么欢迎 AngularJS 的内容(来源请求?)。



