Gibt es eine Möglichkeit, Ember.Component force render zu machen?
Es gibt .rerender()
Methode, aber es hilft nicht.
Auch habe ich versucht, .notifyPropertyChange
für Vorlage, layoute - das gleiche
Für solche Fälle muss ich jetzt ein Stück Vorlage in if
wrapper einwickeln und den Wert des Flags umschalten. Aber der Weg ist hässlich und langweilig.
Irgendwelche Ideen?
Sehen Sie sich die Ember Run-Schleife
anUm diesen "Hintergrund" -Prozess zu umgehen, können Sie etwas wie folgt verwenden:
%Vor%Dadurch wird die Ausführungsschleife neu gestartet, anstatt Ember mit der Änderung von Eigenschaften umzugehen und zu entscheiden, wie der Code ausgeführt werden soll, ähnlich wie bei der JavaScript-Ereignisschleife.
Eine gute Erklärung dafür finden Sie hier
Ich hatte das gleiche Problem mit einer meiner Komponenten. Wie es von der Community gesagt wird, sollten Sie dies nicht tun müssen, wenn Sie das korrekte Ember-Muster verwenden.
Aber wie es in einem bestimmten Fall war, habe ich einen Weg gefunden.
Sie müssen eine Aktion in Ihrem routes/somefile.js
erstellen, um sie wie folgt zu aktualisieren:
und fügen Sie in Ihrer Komponentenansicht eine versteckte Schaltfläche hinzu, um auf die Aktion des Routers wie folgt zu klicken
%Vor%und die in Ihrer Komponente, mit Jquery, können Sie auf die versteckte Schaltfläche klicken, und dies wird die Komponente aktualisieren.
Es ist keine großartige Lösung, aber es ist Arbeit. Hop, es wird helfen.
Tags und Links components ember.js htmlbars