首页 文章

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

提问于
浏览
65

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

3 回答

  • 14

    Update #2 (Aug '16) 飞镖版的Angular现在由Dart团队在Github上维护:dart/angular2 on github

    Update :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已经“融入浏览器”,取而代之的是标准的shadow DOM .

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

    AngularDart中的

    • 指令使用带注释的类声明 . 链接/编译函数替换为apply函数

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

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

    可能还有其他差异,但这是一个很好的列表,可以帮助您入门 .

  • 16

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

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

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

  • 92

    Update 01/2018

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

    Update 08/2016

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

    例如,TS RC.5中引入的 NgModule 可能不会降落在Dart中,路由器模块也可能无法直接转换 . 这些是TS中延迟加载所必需的更改 . Dart有一个更简单的延迟加载故事,并且不需要Angular2 for TS中引入的许多更改 .

    Update

    使用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/

    Original

    本文列出了几个不同之处:ANGULARDART FOR ANGULARJS DEVELOPERS. INTRODUCTION TO THE BEST ANGULAR YET.

相关问题