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?
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:
Dann in Ihrem Ember.Router
(wenn Sie sie verwenden), würden Sie die beiden innerhalb der Funktion connectOutlets
verbinden:
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.
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.
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.
Tags und Links ember.js