Различия между Angular.js и Angular.dart?

Я немного знаю о Angular.js, но я хочу научить себя Dart и Angular.dart сейчас. Мне немного любопытно, каковы различия между ними. Angular.dart tutorial конкретно говорит, что он не будет сравнивать эти два. Кто-нибудь, кто использовал оба, имеет представление о различиях?

Ответ 1

Обновление # 2 (Aug '16) Дантовая версия Angular теперь поддерживается командой Dart на Github: dart/angular2 на github

Обновление: проект AngularDart законсервирован и заменен на Angular2. Angular2 - самая последняя итерация Angular и работает в Dart.

В первоначальном ответе ниже сравниваются AngularDart и AngularJS 1.x.

AngularDart и AngularJS поддерживаются командой Angular. Мы взяли много знаний со стороны JS и применили его к Dart. Мы также взяли много кода и поместили его прямо в мир Дартов.

На техническом уровне в ядре Angular:

  • Язык выражения совместим между двумя версиями. Парсер AngularDart начинался как прямой порт от JS, но развивался сам по себе. Большая разница в том, что парсер Dart поддерживает несколько бэкэндов, включая генератор кода Дарта.

  • Система DI отличается. В Dart он основан на классе, где в Javascript он основан на символе.

  • Компилятор полностью переписан в версии Dart. Это означает, что директивы ведут себя по-разному, и теперь существует различие между "структурными директивами", которые изменяют DOM, "декоративные директивы" и компоненты.

  • ng-transclude "расплавился в браузере", заменен стандартным теневым DOM.

  • управляющие контроллеры были объединены в компоненты

    Директивы
  • в AngularDart объявляются с аннотированным классом. функции link/compile заменяются функцией apply

  • В AngularDart область вычисляется автоматически через зоны Дарта, устраняя необходимость в области. $apply.

  • У AngularDart есть концепция карт атрибутов, которые еще не вернулись к AngularJS. Это означает, что директивам должно потребоваться гораздо меньше возможностей. $Watches или даже зависимость от области.

Могут быть и другие различия, но это хороший список, чтобы вы начали.

Ответ 2

Итак, первое отличие довольно очевидно: AngularJS написано в JavaScript, тогда как Angular.dart записано в дроте.

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

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

Ответ 3

Обновление 08/2016

Angular 2 для JS и Dart теперь являются независимыми проектами и будут в некоторой степени расходиться.

Например, NgModule, введенный в TS RC.5, вероятно, не будет помещен в Dart, а также модуль маршрутизатора, вероятно, не будет переведен непосредственно. Это изменения, которые были необходимы в TS для ленивой загрузки. Дарт имеет более лёгкую историю загрузки и не нуждается во многих изменениях, внесенных в 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. ВВЕДЕНИЕ В ЛУЧШИЙ Angular YET.