web-dev-qa-db-fra.com

Différences entre Angular.js et Angular.dart?

Je connais un peu Angular.js, mais je veux m'enseigner Dart et Angular.Dart maintenant. Je suis un peu curieux de savoir quelles sont les différences entre les deux, cependant. Le tutoriel Angular.Dart dit spécifiquement qu'il ne comparera pas les deux . Quelqu'un qui a utilisé les deux a-t-il une perspective sur les différences?

72
CorayThan

Mise à jour # 2 (août '16) Une version Dart de Angular est maintenant maintenue par l'équipe Dart sur Github: Dart/angular2 sur github

Mise à jour : Le projet AngularDart est mis en veilleuse et a été remplacé par Angular2. Angular2 est l'itération la plus récente de Angular et fonctionne dans Dart.

La réponse originale ci-dessous compare AngularDart et AngularJS 1.x.

AngularDart et AngularJS sont tous deux maintenus par l'équipe Angular. Nous avons pris beaucoup de connaissances du côté JS et l'avons appliqué à Dart. Nous avons également pris beaucoup de code et l'avons porté directement au monde Dart.

Au niveau technique, au cœur d'Angular:

  • Le langage d'expression est compatible entre les deux versions. L'analyseur AngularDart a commencé comme un port direct de JS mais a évolué de lui-même. Une grande différence est que l'analyseur Dart prend en charge plusieurs backends, y compris un générateur de code Dart.

  • Le système DI est différent. Dans Dart, il est basé sur une classe alors qu'en Javascript, il est basé sur un symbole.

  • Le compilateur a été complètement réécrit dans la version Dart. Cela signifie que les directives se comportent différemment et il existe maintenant une distinction entre les "directives structurelles" qui modifient le DOM, les "directives décoratives" et les composants.

  • ng-transclude a "fondu dans le navigateur", remplacé par le DOM shadow standard.

  • les contrôleurs de directives ont été fusionnés en composants

  • les directives dans AngularDart sont déclarées avec une classe annotée. les fonctions de liaison/compilation sont remplacées par une fonction d'application

  • Dans AngularDart, la portée est digérée automatiquement via les zones Dart, éliminant ainsi le besoin de la portée. $ Apply.

  • AngularDart a un concept de cartes d'attributs qui n'est pas encore revenu à AngularJS. Cela signifie que les directives devraient nécessiter beaucoup moins de portée. $ Watch ou même une dépendance à la portée.

Il peut y avoir d'autres différences, mais c'est une bonne liste pour commencer.

94
James deBoer

Mise à jour 01/2018

Voir aussi Quelle est la différence entre Angular 2 TS et Angular 2 Dart?

Mise à jour 08/2016

Angular 2 pour JS et Dart sont maintenant des projets indépendants et divergent dans une certaine mesure.

Par exemple, le NgModule introduit dans TS RC.5 n'atterrira probablement pas dans Dart et le module routeur ne sera probablement pas traduit directement. Ce sont des modifications qui étaient nécessaires dans TS pour le chargement paresseux. Dart a une histoire de chargement paresseux plus facile et n'a pas besoin de beaucoup des changements introduits dans Angular2 pour TS.

Mise à jour

Avec Angular 2 il n'y a plus (presque) de différence car Angular.Dart et Angular.js sont générés automatiquement à partir de la même source TypeScript. http://techcrunch.com/ 2015/03/05/Microsoft-et-google-collaborez-sur-TypeScript-hell-has-not-freez-over-yet /

Original

Cet article répertorie plusieurs différences: ANGULARDART POUR LES DÉVELOPPEURS ANGULARJS. INTRODUCTION AU MEILLEUR ANGULAR YET.

15
Günter Zöchbauer

La première différence est donc assez évidente: AngularJS est écrit en JavaScript alors que Angular.Dart est écrit en Dart.

Tandis que Angular.Dart suit les principes de base de AngularJS il semble que ce soit un terrain de jeu pour faire évoluer de nouvelles fonctionnalités. Je suppose que l'équipe de base prend tous les apprentissages d'AngularJS et essaie d'implémenter les choses un peu mieux pour le Angular.Dart version. Actuellement, il semble que plusieurs choses soient d'abord implémentées dans la version Dart de Angular avant d'être rétroportées vers AngularJS. Par exemple, elles ont juste ajouté une version plus légère de ng-repeat qui devrait finir dans AngularJS.

De plus, l'équipe Angular Angular a récemment partagé quelques idées sur ce qui est prévu pour Angular 2.0. Je parie que la plupart de ces choses arriveront d'abord dans Angular.Dart avant d'atterrir dans AngularJS.

15
Christoph