dans Ember.js j'ai l'itinéraire avec le modèle. Pourriez-vous m'aider, lorsque je suis sur la liste de lecture d'itinéraire, comment recharger cet itinéraire (ou définir de nouvelles données sur le modèle) appelé par rappel à partir d'une autre fonction JS? Je regarde la documentation depuis si longtemps, mais cela ne m'aide pas.
App.PlaylistRoute = Ember.Route.extend({
setupController: function(controller, model) {
$.getJSON('api/playlist.php?' + Math.random().toString(36), function (data) {
controller.set('model', data);
});
}
});
Merci beaucoup!
Depuis un contrôleur, utilisez transitionToRoute
:
this.transitionToRoute('playlist', newModel);
À partir d'un itinéraire, utilisez transitionTo
:
this.transitionTo('playlist', newModel);
Par exemple, imaginez que vous avez une action sur votre contrôleur
App.PlaylistController = Ember.ArrayController.extend({
actions: {
grabNewModel: function(){
//get some new model
this.transitionToRoute('playlist', newModel);
}
}
});
Il semble que la solution dans la réponse ne fonctionnera pas pour l'itinéraire actuel. J'ai eu le même problème et j'ai essayé la solution ici et cela a fonctionné.
http://discuss.emberjs.com/t/refresh-current-view-page-after-language-change/4291/5#post_5
Sur votre route.
actions: {
sessionChanged: function() {
this.refresh();
}
}
et dans votre contrôleur.
observeSession: function() {
this.send("sessionChanged");
}.observes("session.isAuthenticated"),
Il y a deux façons de procéder.
L'une consiste à écrire une action dans l'itinéraire de la liste de lecture et à appeler this.refresh () à l'intérieur. Pour plus d'informations, vous pouvez visiter la méthode Ember Guide refresh pour l'itinéraire.
L'autre moyen est dans votre contrôleur en fonction de la situation lorsque vous devez recharger votre itinéraire
this.get('target.target.router').refresh();
l'un des deux vous aiderait à rafraîchir votre itinéraire.
Une petite note de méthode de rafraîchissement ci-dessous à partir des guides ember:
Actualisez le modèle sur cet itinéraire et tous les itinéraires enfants, en tirant les crochets beforeModel, model et afterModel de la même manière que les itinéraires sont entrés lors de la transition à partir d'un autre itinéraire. Les paramètres de route actuels (par exemple, article_id) seront transmis aux crochets de modèle respectifs, et si un modèle différent est renvoyé, setupController et les crochets de route associés se déclencheront également.