EmberJS: Der beste Weg, das Controller-Modell basierend auf einer anderen Eigenschaft neu zu laden?

9

Was ist der beste Weg, um Modell für einen aktuellen Controller basierend auf einer anderen Eigenschaft neu zu laden?

Zum Beispiel: Ich habe einen Post-Controller. Der Autor kann nur einen Beitrag haben. Ich möchte Nachher erstellen Formular neu laden, wenn currentAuthor Eigenschaft ändert.

Ich habe es so versucht:

%Vor%

Es lädt alles neu, aber gibt kein echtes Modell zurück, sondern verspricht. Und es sieht auch nicht wie eine idiomatische Ember-Lösung aus.

Vielleicht gibt es einen besseren Weg, dieses Problem anzugehen?

    
somebody32 07.09.2013, 10:12
quelle

4 Antworten

1

Ich glaube, das Nachladen von Controllern ist gleichbedeutend damit, dieselbe Route erneut einzugeben. ab 2.12.0 gibt es also viele Möglichkeiten,

  1. Sie können eine Aktion zum Weiterleiten an senden, aktualisieren die aktuelle Route
  

Aktualisieren Sie das Modell auf dieser Route und auf allen untergeordneten Routen und feuern Sie die Hooks beforeModel, model und afterModel auf ähnliche Weise wie Routen beim Übergang von einer anderen Route eingegeben werden.

  1. Sie können dynamische Segmente im URL-Pfad angeben und die Methode transitionTo in Route oder transitionToRoute im Controller.
%Vor%

und Sie können this.transitionTo('post',123) sagen, dies aktualisiert die aktuelle Route und Sie erhalten 123 als Parameter im Model Hook.

Ссылка Ссылка

  1. Sie können die queryParams in der Route und refreshModel als true angeben.
%Vor%

Sie können sogar die gleiche postId als queryParams im Controller angeben. Es wird die Route aktualisieren, wenn Sie postId -Eigenschaft festlegen.

%Vor%

Ссылка

    
kumkanillam 20.03.2017 04:21
quelle
0

Ich bin nervös, Ihnen eine Lösung für dieses Problem zu geben, weil ich mir nicht sicher bin, ob Sie es richtig angehen:

%Vor%

Dies sollte die Inhaltseigenschaft PostEditController neu laden und daher Ihre Vorlagen aktualisieren, wenn sich die currentAuthor -Eigenschaft des Inhalts ändert.

    
chriswessels 07.09.2013 10:26
quelle
0

So etwas würde einen anderen Beitrag finden und ihn dann als Inhalt von PostEditController festlegen.

%Vor%     
Jeremy Green 07.09.2013 18:12
quelle
0

store.find wird Ihnen eine Zusage zurückgeben, also sollten Sie es lösen, um Probleme mit Methoden ohne Aufruf zu vermeiden

%Vor%     
somebody32 07.09.2013 18:28
quelle

Tags und Links