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

Angularjs Angular.js和Angular.dart之间的区别?,angularjs,dart,angular-dart,Angularjs,Dart,Angular Dart,我对Angular.js略知一二,但我现在想自学Dart和Angular.Dart。不过,我有点好奇这两者之间的区别是什么。Angular.dart教程。使用过这两种语言的人对它们的区别有什么看法吗?因此第一个区别非常明显:AngularJS是用JavaScript编写的,而Angular.dart是用dart编写的 虽然Angular.dart遵循了AngularJS的核心原则,但它似乎是新功能发展的一个游乐场。我猜核心团队从AngularJS中吸取了所有的经验教训,并试图为Angular.d

我对Angular.js略知一二,但我现在想自学Dart和Angular.Dart。不过,我有点好奇这两者之间的区别是什么。Angular.dart教程。使用过这两种语言的人对它们的区别有什么看法吗?

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

虽然
Angular.dart
遵循了
AngularJS
的核心原则,但它似乎是新功能发展的一个游乐场。我猜核心团队从AngularJS中吸取了所有的经验教训,并试图为
Angular.dart
版本实现更好的东西。目前,似乎有很多东西是在dart版本的Angular中首先实现的,然后才被后传到
AngularJS
。例如,他们刚刚添加了一个更轻量级的版本
ngrepeat
,最终应该是
AngularJS


Angular团队最近还就Angular 2.0的计划分享了一些见解。我敢打赌,这些东西中的大多数将首先在
Angular.dart中着陆,然后再在
AngularJS中着陆

更新01/2018

另见

更新日期2016年8月

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

例如,TS RC.5中引入的
NgModule
可能不会在Dart中着陆,路由器模块也可能不会直接翻译。 这些是TS中为延迟加载所必需的更改。Dart有一个更简单的延迟加载故事,不需要Angular2中为TS引入的许多更改

更新

对于Angular 2,由于Angular.dart和Angular.js是从同一个TypeScript源自动生成的,因此(几乎)不再有任何区别。

原创


  • Angular.dart使用阴影,而AngularJs不使用阴影。
    AngularJs使用ngTransclude代替


  • Angular.dart似乎不支持链接问题中讨论的其他前缀

  • Angular.dart没有等效于
    ng init
    。 (另见)

  • Angular.dart没有
    ng控制器
    指令()
    而是使用
    @NgController(选择器:'[foo controller]',publishAs:'foo')

  • Angular.dart不支持使用贴图()

  • Angular.dart没有
    限制

  • Misko HeveryAngularJS的创建者和AngularDart团队的成员回答了一个类似的问题

这篇文章列出了几个不同之处:

更新#2(2016年8月)Dart版本的Angular现在由Github上的Dart团队维护:

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

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

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

在技术层面上,以角度为核心:

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

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

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

  • ng transclude已经“融入浏览器”,被标准的阴影DOM所取代

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

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

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

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


可能还有其他不同之处,但这是一个很好的开始列表。

是的。。。其中一个比另外两个更老、更成熟,但我想到的是不太明显的区别。这是一个非常高的观点。我知道这个问题可能不太适合SO,但Angular.dart没有太多文档可用。因此,我希望得到更多实质性的信息,比如-标记的区别在哪里(这不应该很大程度上取决于语言语法(至少是最常见的结构)-哪些标记结构在其中一个中可用,而在另一个中不可用。我认为这两个产品是相关的,并且是由两个相互交流的小组开发的,这一点有点单薄。为了支持关于“游乐场”的观点,你知道它什么时候会处于可用状态吗?甚至一些基本功能现在都不见了,我很高兴能够使用Dart的艺术:(@SalmanPK AngularDart是可用的。您缺少什么功能?并且已经提供了对这两个功能的基本支持。我们仍在开发一些附加功能(例如验证)。一个明显的区别是浏览器兼容性-angular.js声明“Safari、Chrome、Firefox和Opera”