Angular.js和Angular.dart之间的区别?

时间:2013-11-15 04:09:51

标签: angularjs dart angular-dart

我对Angular.js有点了解,但我现在想自己教Dart和Angular.dart。不过,我有点好奇两者之间的区别是什么。 Angular.dart教程specifically says it won't compare the two。使用过两者的人是否都对差异有所了解?

3 个答案:

答案 0 :(得分:94)

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

更新:AngularDart项目被封存,并已被Angular2取代。 Angular2是Angular的最新迭代,适用于Dart。

下面的原始答案比较了AngularDart和AngularJS 1.x。

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

在技术层面,Angular的核心:

  • 表达式语言在两个版本之间兼容。 AngularDart解析器起源于JS的直接端口,但一直在发展。一个很大的区别是Dart解析器支持多个后端,包括Dart代码生成器。

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

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

  • ng-transclude已“融入浏览器”,取而代之的是标准的影子DOM。

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

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

  • 在AngularDart中,范围通过Dart区域自动消化,消除了范围的需要。$ apply。

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

可能存在其他差异,但这是一个很好的列表,可以帮助您入门。

答案 1 :(得分:16)

所以第一个区别很明显:AngularJS是用JavaScript编写的,而Angular.dart是用dart编写的。

虽然Angular.dart遵循AngularJS的核心原则,但它似乎是一个新功能发展的游乐场。我想核心团队从AngularJS中学到了所有的知识,并试图为Angular.dart版本稍微好一些。目前似乎在Angular的dart版本中首先实现了很多东西,然后才将它们反向移植到AngularJS。例如,他们刚刚添加了一个更轻量级的ng-repeat版本,最终应该以{{1​​}}结尾。

此外,Angular团队最近分享了一些关于Angular 2.0的计划的见解。我敢打赌,在AngularJS进入Angular.dart之前,这些事情中的大部分将首先落在AngularJS

答案 2 :(得分:15)

更新01/2018

另见What's the difference between Angular 2 TS and Angular 2 Dart?

更新08/2016

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

例如,TS RC.5中引入的NgModule可能不会落入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 DEVELOPERS. INTRODUCTION TO THE BEST ANGULAR YET.