Festlegen/ändern von Modell-controller
Ich mache ein einfaches Beispiel für die ajax-operation in ember 1.7.0, Was ich getan habe ist ein Modell in der route und hat eine ajax-get für raw-Daten.
App.IndexRoute=Em.Route.extend({
model:function(){
return Em.$.get('data.json');
},
}
Nun im controller möchte ich ändern, diese für die Vorlage, ich habe versucht,
App.IndexController = Ember.Controller.extend({
init:function(){this._super();
var newmodel=this.get('content');
....some modification...
this.set('model',newmodel);
}
}
aber das wird nicht funktionieren.
So, wie Man im Grunde das Modell Bearbeiten? Dies sollte in setupController oder im controller?
wenn es sein muss, wie get-und set-Modell im controller? Ein weiterer Verwirrung ist, wenn Sie zu erstellen und zu verlängern, wenn der controller und route?
Dank.
InformationsquelleAutor rain | 2014-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen für
setupController
Haken in der routecontroller.set('model', model);
, dass die Logik schon passiert, inthis._super(controller, model);
, es sei denn, er wechselt das Modell, um ein neues Objekt z.B.model = {}
statt nur die änderung einer Eigenschaft auf das Modell. Dann würden Sie einfach abwarten und call super am Ende mit dem neuen Modell.Danke für die Klarstellung
Danke, einige Zweifel : wenn ich das Tat.set('model',"{'eins':'1'}"); Controller-init, und überprüft den Wert in setupcontroller vom controller.get('Modell') und den controller.get('content') Sie sind anders. ie-Modell ist mit neuen Daten, die ich überschreiben des Controller->init, in der Erwägung, dass Inhalte->original-Modell-Wert zurückgegeben Route->Modell
jede Hilfe, die auf verschiedene Verhalten der Einstellung/erste Modell, wie ich schrieb in den Kommentar oben!
Würden Sie mir die Einrichtung eines jsbin zeigen, was Ihre Angabe? emberjs.jsbin.com
InformationsquelleAutor saygun
extend()
wird verwendet, um erstellen Sie eine Unterklasse für jede Klasse, zum BeispielEmber.ArrayController
. Wenn Sie möchten, überschreiben Sie die Eigenschaften (Methoden) der vorhandene Klasse, die Sie gehen mit verlängern.create()
wird verwendet, um neue Instanz einer Klasse. Finden Sie diese http://emberjs.com/guides/object-model/classes-and-instances/Nicht zu benutzen brauchen
setupController
HakenRoute
bis Sie möchten, legen Sie die Eigenschaften für den controller.Wenn Ihre Route haben Modell Haken und die Daten zurückgeben, dann können Sie access-Modell direkt in Ihre Steuerung mithilfe
Zur gleichen Zeit, die Sie verwenden können, setter zu aktualisieren/ändern-Modell.
Haben Sie einen Blick auf einfach bin http://jsbin.com/fesux/edit
Freundlicherweise haben Sie einen Blick auf Ember.Satz und Ember.auch
InformationsquelleAutor Susai
Können Sie nutzen eine setupController, um diese zu bewältigen
Den setupController Haken erhält der route-handler zugeordnet controller als erstes argument. In diesem Fall, die IndexRoute ist setupController erhält die Anwendung eine Instanz von App.IndexController.
Den Standard-setupController Haken legt das Modell die Eigenschaft der zugehörige controller, um die Strecke hf-Modell.
Wenn Sie möchten, konfigurieren Sie einen anderen controller als controller im Zusammenhang mit der route-handler verwenden Sie die controllerFor Methode.
Mehr details hier:
http://emberjs.com/guides/routing/setting-up-a-controller/
InformationsquelleAutor blackmind