Різниця між Angular.js та Angular.dart? [зачинено]


75

Я трохи знаю про Angular.js, але зараз хочу навчити себе Dart і Angular.dart. Мені трохи цікаво, в чому різниця між ними, хоча. У підручнику Angular.dart спеціально сказано, що він не порівнює ці два . Хто-небудь, хто використовував обидва, має уявлення про те, в чому різниця?


3
Так ... і один старший і зріліший за двох інших, але я думав про менш очевидні відмінності.
Coray, ніж

Відповіді:


95

Оновлення №2 (серпень '16) Команда Dart на Github тепер підтримує версію Dart Angular: dart / angular2 на github

Оновлення : Проект 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 "розтанув у браузері", замінений на стандартний тіньовий DOM.

  • контролери директив були об’єднані в компоненти

  • директиви в AngularDart оголошуються з анотованим класом. функції посилання / компіляції замінюються на функцію застосувати

  • У AngularDart область автоматично перетравлюється через зони Дарт, що виключає необхідність із області застосування. $ Apply.

  • AngularDart має концепцію карт атрибутів, яка ще не повернулася до AngularJS. Це означає, що директиви повинні мати набагато менший обсяг. $ Годинник або навіть залежність від Сфери.

Можуть бути й інші відмінності, але це хороший список для початку.


2
Будь-яка ідея, коли це буде в придатному для використання стані? Навіть деякі основні функції відсутні зараз, здається, і я дуже радий почати використовувати Dart :(
Сальман фон Аббас

@SalmanPK AngularDart можна використовувати. Які функції відсутні у вас?
James deBoer 02


Базова підтримка обох уже доступна. Ми все ще працюємо над кількома додатковими функціями (наприклад, перевірка).
James deBoer

7
однією очевидною відмінністю буде сумісність браузера - angular.js зазначає "Safari, Chrome, Firefox, Opera, IE8, IE9 та мобільні браузери (Android, Chrome Mobile, iOS Safari)", хоча для angular.dart такої вимоги немає (притулок я не знайшов нічого на їх веб-сайті) - сама dart націлена на ECMAScript 5 (> = IE9), але angular.dart використовує для цього Shadow DOM і полімерний поліфіл - і єдиною метою полімеру є "вічнозелені" браузери, навіть не згадуючи мобільних браузерів. Хтось знає, чи це правильне спостереження?
Герберт

17

Отже, перша різниця досить очевидна: AngularJSнаписана на JavaScript, тоді Angular.dartяк написана на дротиках.

Хоча Angular.dartслідує основним принципам, AngularJSздається, це трохи майданчик для розвитку нових функцій. Думаю, основна команда бере всі знання від AngularJS і намагається реалізувати речі трохи краще для Angular.dartверсії. В даний час здається, ніби купу речей вперше реалізовано у дарт-версії Angular, перш ніж вони повернуться до AngularJS. Наприклад, вони просто додали більш полегшену версію, ng-repeatяка врешті-решт повинна закінчитися AngularJS.

Також команда Angular нещодавно поділилася деякою інформацією про те, що планується для Angular 2.0. Б'юся об заклад, більшість із цих речей спочатку потраплять Angular.dartдо того, як вони приземляться AngularJS.


1
Це твердження з дуже високої точки зору. Я усвідомлюю, що це питання може не ідеально підходити для SO, але для Angular.dart доступно не так багато документації. Тож я сподівався на трохи більш суттєву інформацію, на зразок - де розмітка відрізняється (це не повинно сильно залежати від синтаксису мови (принаймні, найпоширеніших конструкцій для отримання ідеї). - які конструкції розмітки доступні в одній, але не в іншому. ІМХО, що обидва продукти пов’язані і розроблені двома групами, які розмовляють між собою, трохи тонкий
Гюнтер Цохбауер,

Для резервного копіювання точки про «дитячому майданчику» - stackoverflow.com/a/21055757/3966682
d4nyll

15

Оновлення 01/2018

Дивіться також Яка різниця між Angular 2 TS та Angular 2 Dart?

Оновлення 08/2016

Angular 2 для JS та Dart зараз є незалежними проектами і певною мірою розходяться.

Наприклад, NgModuleпредставлений в TS RC.5, ймовірно, не потрапить у Dart, а також модуль маршрутизатора, ймовірно, не буде перекладений безпосередньо. Це зміни, необхідні в TS для ледачого навантаження. Dart має більш просту історію завантаження і не потребує багатьох змін, введених в Angular2 для 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/

Оригінал

У цій статті перелічено кілька відмінностей: ANGULARDART ДЛЯ РОЗРОБНИКІВ ANGULARJS. ВСТУП ДО КРАЩОГО КУТНИКА.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.