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度。