2013-08-07 5 views

Antwort

6

Gute Frage. Die FixtureAdapter hat diese genaue Funktion eingebaut, die Eigenschaft, die Sie konfigurieren müssen, heißt latency. Versuchen Sie folgendes:

App.Store = DS.Store.extend({ 
    adapter: DS.FixtureAdapter.create({ latency: 5000 }); 
}); 

Dies wird eine Verzögerung von 5000 millis hinzufügen (5 Sekunden) auf den FixtureAdapter, 5 Sekunden warten, bevor sie die Daten zurückgibt.

Obwohl @ Daniel Antwort ist auch ein gültiger Ansatz, wobei jedoch dieses integrierte Funktion wird Ihr Modell Haken unberührte lassen, die keinerlei Aufwand erfordern, wenn Sie an einem bestimmten Punkt zu einem anderen Adapter wechseln, und es wird keine sein müssen die simulierenden Versprechen entfernen, die saubereren Code ergeben.

Ich hoffe, es hilft.

+0

ARgh, Dokumentation schlägt wieder zu! –

4

In Ihrem Modell-Hook gibt eine Versprechung zurück, die nach einer kurzen Verzögerung auflöst.

model: function(params, transition){ 

    return new Ember.RSVP.Promise(function(resolve){ 
     setTimeout(function(){ 
      var model = App.Model.find(params.id); 
      resolve(model); 
     }, 3000); // 3 second delay, wooh, your server is slow!!! 
    }); 
} 
+0

Ich habe das versucht, aber es hat das Modell nicht im Laden gespeichert. Ich möchte die Verzögerung nur beim ersten Aufruf des Modells simulieren. –

+0

Sie müssen diese allgemeine Lösung verwenden, wenn Sie keine Ember-Daten verwenden. Mit Ember Data nutzen Sie die Lösung von intuitivepixel. – ronkot

Verwandte Themen