Angular.js和Angular.dart之间的区别?[关闭]


75

我对Angular.js有所了解,但现在我想教自己Dart和Angular.dart。不过,我很好奇两者之间的区别。Angular.dart教程专门说不会比较两者。使用过两者的人是否对差异有什么看法?


3
是的……一个比其他两个更老更成熟,但是我想到的是不太明显的差异。
CorayThan

Answers:


95

更新#2(2013年8月) Dart团队现在在Github上维护了Angular的Dart版本:github上的dart / angular2

更新:AngularDart项目已被封存,并已被Angular2取代。Angular2是Angular的最新版本,可在Dart中使用。

以下原始答案比较了AngularDart和AngularJS1.x。

AngularDart和AngularJS都由Angular团队维护。我们已经从JS方面获取了很多知识,并将其应用于Dart。我们还采用了很多代码,并将其直接移植到Dart世界。

在技​​术层面上,在Angular的核心中:

  • 表达式语言在两个版本之间兼容。AngularDart解析器最初是从JS直接移植而来的,但一直在不断发展。Dart解析器最大的不同在于它支持多个后端,包括Dart代码生成器。

  • DI系统不同。在Dart中,它是基于类的,而在Javascript中,则是基于符号的。

  • 该编译器已完全用Dart版本重写。这意味着指令的行为有所不同,现在在修改DOM的“结构指令”,“装饰指令”和组件之间存在区别。

  • ng-transclude已“融合到浏览器中”,由标准的影子DOM取代。

  • 指令控制器已合并到组件中

  • AngularDart中的指令使用带注释的类声明。链接/编译功能被替换为应用功能

  • 在AngularDart中,范围是通过Dart区域自动摘要的,从而消除了对scope。$ apply的需求。

  • AngularDart具有属性映射的概念,但还没有回到AngularJS。这意味着指令应该需要更少的scope。$ watchs甚至对Scope的依赖。

可能还有其他差异,但这是一个很好的入门指南。


2
知道何时会处于可用状态吗?现在似乎甚至缺少一些基本功能,并且很高兴开始使用Dart :(
Salman von Abbas 2013年

@SalmanPK AngularDart可用。您缺少什么功能?
James deBoer 2014年


两者均已提供基本支持。我们仍在研究其他一些功能(例如验证)。
James deBoer 2014年

7
一个明显的区别是浏览器兼容性-angular.js指出“ Safari,Chrome,Firefox,Opera,IE8,IE9和移动浏览器(Android,Chrome Mobile,iOS Safari)”,但没有对angular.dart(“天堂” dart本身的目标是ECMAScript 5(> = IE9),但是angular.dart使用Shadow DOM和Polymer的polyfill进行处理-dart的唯一目标是“常绿”浏览器,甚至没有提到移动浏览器。有谁知道这是否是正确的观察?
赫伯特2014年

17

因此,第一个区别非常明显:AngularJS用JavaScript编写,而Angular.dart用dart编写。

尽管Angular.dart遵循了其核心原则,AngularJS但它似乎在为新功能的发展铺平了道路。我猜核心团队会从AngularJS那里学到所有东西,并尝试在Angular.dart版本上更好地实现。目前,似乎有很多事情是在dart版本的Angular中首先实现的,然后才移植到AngularJS。例如,他们只是添加了一个更轻量级的版本,ng-repeat该版本最终应在中出现AngularJS

Angular团队最近还分享了有关Angular 2.0计划的一些见解。我打赌这些东西中的大多数会在降落Angular.dart之前先降落AngularJS


1
这说明从非常高的观点。我知道这个问题可能不太适合SO,但是Angular.dart没有太多可用的文档。因此,我希望获得一些更实质性的信息,例如-标记在何处有所不同(这应该在很大程度上不取决于语言语法(至少是最常见的结构才能理解这一点)。-在其中可以使用哪些标记结构,但恕我直言,恕我直言,这两种产品都是相关的,并且是由两个互相交谈的小组共同开发的。
GünterZöchbauer2013年

要备份关于“操场”点- stackoverflow.com/a/21055757/3966682
d4nyll

15

更新01/2018

另请参阅Angular 2 TS和Angular 2 Dart有什么区别?

更新08/2016

JS和Dart的Angular 2现在是独立的项目,并且会有所不同。

例如NgModule,TS RC.5中引入的内容可能不会落入Dart中,并且路由器模块也可能不会直接转换。这些是TS中延迟加载所必需的更改。Dart有一个更轻松的延迟加载过程,不需要Angular2 for TS中引入的许多更改。

更新资料

有了Angular 2,(几乎)没有区别了,因为Angular.dart和Angular.js是从相同的TypeScript源自动生成的。 http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

原版的

本文列出了几个区别:ANGULARDART FOR ANGULARJS开发人员。最佳角度介绍。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.