2016-08-03 12 views
0

zu verwenden i auf Winkel js gearbeitet haben und ich fand, dass viele Möglichkeiten, um ein Modul zu erstellen, einen Controller, etc ...Verschiedene Möglichkeiten Winkel js

Zum Beispiel:

var app = angular.module('myApp', []); 

und :

angular.module('myApp', []); 

Wenn ich einen Controller (erster Weg) erstellen möchten:

app.controller('myController', [...]); 

erstellen Controller (Zweiter Weg):

angular.module('myApp').controller('myController', [...]); 

wirklich ... Was ist der Unterschied?

Danke!

+0

Anders als der erste Weg ist viel sauberer und prägnanter? –

+2

Der Unterschied zwischen den beiden ersten Codeteilen besteht darin, dass Sie auf der ersten eine Variable zum Speichern des Ergebnisses festlegen. Der Rest ist nur Verkettung. – melancia

+0

Es gibt keinen Unterschied zwischen ihnen. Aber für mich sollte man 'Second way' verwenden, man muss die App-Variable nicht beachten, man kann das App-Modul überall mit' angular.module ('myApp') 'bekommen. –

Antwort

0

angular.module ('myApp', []) ist der Setter für ein Modul, das die zurück Instanz, sobald es erstellt wird. Wenn Sie var app = davor setzen, bleibt nur ein Verweis auf das JavaScript-Objekt des Moduls erhalten. Das leere Array nach dem Modulnamen ist die Abhängigkeitsliste. Wir übergeben eine leere Abhängigkeitsliste, um sie von einem Getter-Aufruf zu unterscheiden und lassen Angular wissen, dass es sich um einen Setter-Aufruf handelt und wir ein Modul erstellen.

angular.module ('myApp') ist der Getter für ein Modul und gibt das JavaScript-Objekt zurück. Der Unterschied besteht darin, dass es keine Abhängigkeitsliste gibt, sodass Angular weiß, dass es ein Modul abruft, das bereits erstellt wurde.

Wenn Sie in der gleichen Datei sind, ist es in Ordnung, einen Verweis auf das Modul mit einer lokalen Variablen wie App zu halten, aber wenn Sie Controller in verschiedenen Dateien erstellen, sollten Sie nicht auf die Existenz einer globalen Variablen Anruf App verlassen und sollte das Modul mit einem Getter-Aufruf abrufen.

0

Es gibt eigentlich keinen Unterschied, es ist genau das gleiche.

Diese app.controller (...) gleich angular.module ('myApp'). Controller (...)

, weil Sie eine Variable namens App erklärt, die angular.module gleich ist ()

Und die Verkettung Sache: angular.module.controller ist Sie alle 3 Beispiele kombiniert.

Putting angular.module() in eine Variable mit dem Namen App oder was auch immer macht nur die Syntax einfacher das ist alles ^^

Verwandte Themen