2013-11-15 24 views
62

Conosco un po 'di Angular.js, ma ora voglio insegnarmi Dart e Angular.dart. Sono un po 'curioso di sapere quali siano le differenze tra i due. Il tutorial di Angular.dart specifically says it won't compare the two. Qualcuno che ha usato entrambi ha una prospettiva su quali sono le differenze?Differenze tra Angular.js e Angular.dart?

+0

lingue diverse – charlietfl

+3

Sì ... e uno è più vecchio e più maturo degli altri due, ma stavo pensando alle differenze meno ovvie. – CorayThan

risposta

92

Aggiornamento # 2 (agosto '16) versione un dardo di angolare è ora gestito dal team di Dart su Github: dart/angular2 on github

Aggiornamento: il progetto AngularDart viene messo fuori servizio ed è stato sostituito da Angular2. Angular2 è l'iterazione più recente di Angular e funziona in Dart.

La risposta originale di seguito confronta AngularDart e AngularJS 1.x.

AngularDart e AngularJS sono entrambi gestiti dal team Angular. Abbiamo preso molte informazioni dal lato JS e l'abbiamo applicato a Dart. Abbiamo anche preso molto codice e l'abbiamo portato direttamente al mondo di Dart.

A livello tecnico, nel nucleo angolare:

  • L'espressione lingua è compatibile tra le due versioni. Il parser di AngularDart è iniziato come una porta diretta da JS, ma si è evoluto da solo. Una grande differenza è che il parser Dart supporta più backend, incluso un generatore di codice Dart.

  • Il sistema DI è diverso. In Dart è basato sulla classe, dove in Javascript è basato su simboli.

  • Il compilatore è stato completamente riscritto nella versione di Dart. Ciò significa che le direttive si comportano diversamente e ora c'è una distinzione tra "direttive strutturali" che modificano il DOM, "direttive decorative" e componenti.

  • ng-transclude ha "fuso nel browser", sostituito dal DOM ombra standard.

  • controllori direttiva sono state fuse in componenti

  • direttive in AngularDart sono dichiarate con una classe annotata. le funzioni di collegamento/compilazione sono sostituite con una funzione applicabile

  • In AngularDart, l'ambito viene digerito automaticamente attraverso le zone Dart, eliminando la necessità dall'ambito. $ apply.

  • AngularDart ha un concetto di mappe di attributi che non è ancora tornato ad AngularJS. Ciò significa che le direttive dovrebbero necessitare di molti meno spazi. $ Orologi o anche una dipendenza dall'ambito.

Ci possono essere altre differenze, ma questa è una buona lista per iniziare.

+2

Qualsiasi idea quando sarà in uno stato utilizzabile? Anche alcune funzioni di base sono mancanti in questo momento sembra e sono così entusiasta di iniziare a usare Dart :( –

+0

@SalmanPK AngularDart è utilizzabile. ? –

+0

[ngModello] (https://github.com/angular/angular.dart/issues/131) e [ngForm] (https://github.com/angular/angular.dart/issues/113) –

16

Quindi la prima differenza è abbastanza ovvia: AngularJS è scritto in JavaScript mentre Angular.dart è scritto in dardo.

Mentre Angular.dart segue i principi di base di AngularJS, sembra essere un po 'un campo di gioco per le nuove funzionalità da evolvere. Immagino che il team principale tenga tutti gli insegnamenti di AngularJS e cerchi di implementare le cose solo leggermente meglio per la versione Angular.dart. Attualmente sembra che un pò di cose siano state implementate per la prima volta nella versione dardo di Angular prima che abbiano ottenuto il backport a AngularJS. Ad esempio, hanno appena aggiunto una versione più leggera di ng-repeat che alla fine dovrebbe arrivare a AngularJS.

Anche il team Angular ha recentemente condiviso alcune informazioni su ciò che è previsto per Angular 2.0. Scommetto che la maggior parte di queste cose atterreranno prima in Angular.dart prima di atterrare nel AngularJS.

+1

Questa affermazione da un ** molto ** alto punto di vista. Sono consapevole che questa domanda potrebbe non essere perfetta per SO, ma non c'è molta documentazione disponibile per Angular.dart. Quindi speravo in informazioni un po 'più sostanziali come - dove differisce il markup (questo non dovrebbe dipendere molto dalla sintassi del linguaggio (almeno dei costrutti più comuni per ottenere l'idea) - quali costrutti di markup sono disponibili nell'uno ma non nell'altro IMHO che entrambi i prodotti sono correlati e sviluppati da due gruppi che parlano tra loro è un po 'sottile –

+0

Per eseguire il backup del punto su' playground '- http://stackoverflow.com/a/21055757/3966682 – d4nyll

13

Aggiornamento 01/2018

Vedi anche What's the difference between Angular 2 TS and Angular 2 Dart?

Aggiornamento 08/2016

angolare 2 per JS e Dart sono ora progetti indipendenti e sarà divergere in una certa misura.

Ad esempio, lo NgModule introdotto in TS RC.5 probabilmente non verrà inserito in Dart e probabilmente il modulo router non verrà convertito direttamente. Queste sono le modifiche che erano necessarie in TS per il caricamento lazy. Dart ha una storia di caricamento pigro più semplice e non ha bisogno di molte delle modifiche introdotte in Angular2 per TS.

Aggiornamento

Con angolare 2 ci sono (quasi) senza differenze più perché Angular.dart e Angular.js sono generati automaticamente dalla stessa fonte dattiloscritto. http://techcrunch.com/2015/03/05/microsoft-and-google-collaborate-on-typescript-hell-has-not-frozen-over-yet/

originale

questo articolo sono elencate alcune differenze: ANGULARDART FOR ANGULARJS DEVELOPERS. INTRODUCTION TO THE BEST ANGULAR YET.