J'ai un état de liste de produits et un état de modification/ajout de produit dans mon Angular app.
Les données de la liste de produits sont chargées dans le contrôleur (je ne pensais pas avoir besoin de résolution pour être définies dans l'état de configuration), ce qui permet d'obtenir les données d'un ngResource:
function InventoryListCtrl (myResource) {
var vm = this;
myResource.query(function (data) {
vm.products = data;
});
}
Sur Edit Controller, après avoir édité un produit, je retourne à l'état de liste suivant:
vm.product.$update().$promise;
$state.go('productList');
Il ne charge pas toujours la liste avec les nouvelles données, il affiche les anciennes données lors de la première exécution en général, puis après la deuxième mise à jour et le retour manuel à l'état de liste, il commence à s'actualiser après chaque mise à jour.
J'ai essayé ça, mais ça n'a pas marché non plus:
vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });
Qu'est-ce que je rate?
Je pense que vous chargez le nouvel état avant la fin de la mise à jour - essayez de déplacer la transition d'état sur après la fin de la mise à jour:
vm.product.$update().then(function(){
$state.go('productList', {}, { reload: true });
});
je pense que cela devrait fonctionner pour l'actualisation de l'état actuel.
$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams
J'ai eu le même problème avec une liste qui ne rafraîchit pas après la modification. Envelopper le $ state.go dans une fonction $ timeout a résolu mon problème.
$timeout(function(){
$state.go('publishers.list', {}, { reload: true });
},200);