我對Angular.js有一些瞭解,但我現在想要自學Dart和Angular.dart。不過,我有點好奇兩者之間的差別。 Angular.dart教程specifically says it won't compare the two。有沒有人使用過這兩種方法,對於它們之間的差異有一個看法?Angular.js和Angular.dart之間的區別?
回答
更新#2(八月'16)角的飛鏢版本現在由鏢隊保持在Github上:dart/angular2 on github
更新: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。這意味着指令應該需要更少的範圍。$ watch或甚至依賴於範圍。
可能還有其他的不同,但這是一個很好的清單,讓你開始。
任何想法,當它將在一個可用的狀態?即使一些基本功能現在似乎丟失了,並且很興奮開始使用Dart :( –
@SalmanPK AngularDart是可用的。你缺少哪些功能? –
[ngModel](https:/ /github.com/angular/angular.dart/issues/131)和[ngForm](https://github.com/angular/angular.dart/issues/113) –
所以第一個區別很明顯:AngularJS
是用JavaScript編寫的,而Angular.dart
是用dart編寫的。
雖然Angular.dart
遵循AngularJS
的核心原則,但它似乎對於新功能的發展具有一定的作用。我想這個核心團隊從AngularJS那裏學到了所有的知識,並試圖爲Angular.dart
版本實現稍微好一點的事情。目前看來,在Angular的Dart版本中,首先實現了一堆東西,然後它們被backport到AngularJS
。例如,他們只是增加了一個更輕量級版本的ng-repeat
,最終應該以AngularJS
結束。
此外,Angular團隊最近分享了有關Angular 2.0計劃的一些見解。我敢打賭,大多數這些東西在登陸AngularJS
之前將首先登陸Angular.dart
。
這個陳述來自一個非常**高的觀點。 我知道這個問題可能不適合SO,但是Angular.dart的文檔並不多。 所以我希望能有一些更實質性的信息,比如 - 標記在哪裏不一樣(這應該不是很大程度上取決於語言語法(至少是最常見的構造來獲得想法)。 - 可用的標記構造在一個但不是在其他 恕我直言,這兩個產品是相關的,並由兩個團體開發的相互交談是有點薄。 –
備份關於'操場'的觀點 - http://stackoverflow.com/a/21055757/3966682 – d4nyll
更新01/2018
又見What's the difference between Angular 2 TS and Angular 2 Dart?
更新08/2016
角2 JS和飛鏢現在是獨立的項目,並且將偏離到一定程度。
例如,TS RC.5中引入的NgModule
可能不會落入Dart,而且路由器模塊可能不會直接轉換。 這些是TS中用於延遲加載所必需的更改。 Dart有一個更簡單的延遲加載故事,並且不需要Angular2中爲TS引入的許多更改。
更新
具有角2有(幾乎)沒有差異了,因爲Angular.dart和Angular.js是自動生成的來自相同源打字原稿。 http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/
原始
Analog of ngTransclude in Angular.Dart
Angular.dart使用shadowDom而AngularJs沒有。
AngularJs改爲使用ngTransclude。What is the difference between ng-app and data-ng-app?
Angular.dart好像不支持其他前綴像在鏈接的問題進行討論。Angular.dart沒有相當於
ng-init
。 (另見GitHub issue - port: ng-init)有角。飛鏢沒有
ng-controller
指令(port: ngController)
代替@NgController(selector:'[foo-controller]', publishAs:'foo')
用於Angular.dart不支持
ng-repeat
與地圖(ng-repeat with a Map not working)Angular.dart沒有
restrict
Has Angular.dart directive an equivalent to AngularJS's `restrict`Misko Hevery AngularJS的創造者和AngularDart團隊成員回答了類似問題here
本文列出了幾個不同點:ANGULARDART FOR ANGULARJS DEVELOPERS. INTRODUCTION TO THE BEST ANGULAR YET.
- 1. Angular.js Hello World 1.2.0和1.4.7之間的區別
- 2. 之間的〜/和的區別../
- 3. '#','%'和'$'之間的區別
- 4. {!!之間的區別!!}和{{}}
- 5. '+ ='和'= +'之間的區別?
- 6. 「。+」和「。+?」之間的區別
- 7. .eq之間的區別。和==
- 8. #。/和#之間的區別。 ./
- 9. !=和!之間的區別==
- 10. 「%〜dp0」和「。\」之間的區別?
- 11. | =和^ = css之間的區別
- 12. 之間的區別。和#
- 13. ==和case之間的區別?
- 14. 「**/* /」和「** /」之間的區別?
- 15. jQuery - '。'之間的區別和「#」
- 16. 「?1」和「?」之間的區別
- 17. `%in%`和`==`之間的區別
- 18. fmod和%之間的區別
- 19. 之間的區別:+和:+
- 20. 類區域和堆之間的區別
- 21. SPFile和PublishingPage類別之間的區別
- 22. 子類和類別之間的區別?
- 23. System.Timers.Timer Enabled = true和.Start()之間的區別Enabled = true和.Start()之間的區別
- 24. isForeground()和onExposed和onObscured之間的區別
- 25. $ .ajax()和$ .get()和$ .load()之間的區別
- 26. 和intent和setcontentview之間的區別
- 27. Java和C#和.NET之間的區別
- 28. NSthread和NStimer和NSNotifcation之間的區別?
- 29. sys.log()和console.log()和console.error()之間的區別?
- 30. 關注與責任之間的區別(即SRP和SoC之間的區別)?
不同語言 – charlietfl
是的......其中一個比另外兩個更老,更成熟,但我在考慮不太明顯的差異。 – CorayThan