ObjectController und ArrayController

8

Ich lerne emberjs Formular trek.github.com . Dieses Tutorial verwendete sowohl Em.ObjectController als auch Em.ArrayController . Und es gibt auch Em.Controller .

Ich bin verwirrt, wenn ich sie benutze, ich denke, Em.ObjectController ist für einzelnes Objekt, Em.ArrayController ist für Array und Em.Controller ist nur für ApplicationController.

Gibt es eine gesegnete Regel, wann welche verwendet werden soll?

    
xnjiang 26.09.2012, 07:23
quelle

2 Antworten

13

Wenn Ihr Controller eine Liste von Elementen darstellt, verwenden Sie normalerweise Ember.ArrayController . Wenn der Controller ein einzelnes Element darstellt, verwenden Sie Ember.ObjectController . Etwas wie das Folgende:

%Vor%

Dann in Ihrem Ember.Router (wenn Sie sie verwenden), würden Sie die beiden innerhalb der Funktion connectOutlets verbinden:

%Vor%

Bearbeiten: Ich habe nie Ember.Controller verwendet. Wenn Sie sich den Quellcode ansehen, scheint es, als wollten Sie diesen verwenden, wenn Sie einen benutzerdefinierten Controller erstellen, der nicht zu den beiden anderen Controllern passt.

    
Joachim H. Skeie 26.09.2012, 10:09
quelle
0

Die allgemeine Regel ist, dass es vom Modell aus der Route abhängt.

Wenn das Modell ein Array ist, sollten Sie ArrayController verwenden. Es wird Ihnen erlauben, in Zukunft auf einfache Weise das Sortieren oder Filtern zu implementieren. ArrayController verbindet normalerweise ObjectControllers.

Wenn Ihr Modell eine Instanz von Ember Object ist, sollten Sie ObjectController verwenden. Es findet statt, wenn Sie beispielsweise Ember-Daten verwenden. Mit Objectcontroller können Sie direkt auf Modelleigenschaften zugreifen. Sie müssen nicht jedesmal model.property schreiben.

%Vor%

Schließlich, wenn man kein Modell hat, gibt es eine ideale Situation, um nur Ember.Controller zu verwenden. Es wird keinen direkten Zugriff auf Modelleigenschaften als ObjectController ermöglichen.

    
Mateusz Nowak 12.11.2014 21:29
quelle

Tags und Links