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

我对Angular.js有一些了解,但是现在我想自学Dart和Angular.dart。 不过,我有点好奇两者之间的差别。 Angular.dart教程特别说明它不会比较两者 。 有谁曾经使用过,有哪些不同之处?

更新#2(Aug '16) Angular的Dart版本现在由Dith团队在Github上维护: dith / angular2 on github

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

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

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

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

  • expression式语言在两个版本之间是兼容的。 AngularDartparsing器从JS开始是一个直接的端口,但是一直在发展。 Dartparsing器支持多个后端,包括Dart代码生成器。

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

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

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

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

  • AngularDart中的指令是用注释类声明的。 链接/编译function被replace为应用function

  • 在AngularDart中,范围通过飞镖区域自动消解,不需要范围$ apply。

  • AngularDart有一个属性映射的概念,还没有回到AngularJS。 这意味着指令应该需要更less的作用域。$ watch甚至依赖于作用域。

可能还有其他的不同,但这是一个很好的清单,让你开始。

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

虽然Angular.dart遵循AngularJS的核心原则,但它似乎有点新function的演变。 我想核心团队从AngularJS那里学习所有的知识,并尝试为Angular.dart版本实现稍微好一些的Angular.dart 。 目前看起来好像很多东西都是在Angular的Dart版本中首先实现的,然后AngularJS移植到AngularJS 。 例如,他们只是添加了一个更加轻量级的ng-repeat ,最终应该在AngularJS结束。

最近,Angular团队也分享了Angular 2.0的计划。 我敢打赌,这些东西大部分将首先落在Angular.dart然后在AngularJS降落。

更新08/2016

JS和Dart的Angular 2现在是独立的项目,在一定程度上会有分歧。

例如在TS NgModule引入的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/

原版的

  • Angular.Dart中ngTransclude的模拟
    Angular.dart使用shadowDom而AngularJs不使用。
    AngularJs使用ngTransclude来代替。

  • ng-app和data-ng-app有什么不同?
    Angular.dart似乎不支持链接问题中讨论的其他前缀。

  • Angular.dart与ng-init没有相同之处。 (另请参阅GitHub问题 – 端口:ng-init )

  • Angular.dart没有ng-controller指令( 端口:ngController )
    而是使用@NgController(selector:'[foo-controller]', publishAs:'foo')

  • Angular.dart不支持ng-repeat与地图(ng- 重复与地图不工作 )

  • Angular.dart没有restrict Angular.dart指令等同于AngularJS的`restrict`

  • AngularJS的创造者Misko Hevery和AngularDart团队的成员在这里回答了类似的问题

本文列出了几个不同之处: ANGULARDJS ANGULARJS开发商。 介绍最好的angular度。