Ответ 1
Я думаю, что вы загружаете новое состояние до завершения обновления - попробуйте переместить переход состояния после завершения обновления:
vm.product.$update().then(function(){
$state.go('productList', {}, { reload: true });
});
У меня есть состояние "Список продуктов" и "Состояние редактирования/добавления продукта" в приложении Angular.
Данные списка товаров загружаются в контроллер (я не думал, что мне нужно разрешение для определения в конфигурации состояния), которое получает данные из ngResource:
function InventoryListCtrl (myResource) {
var vm = this;
myResource.query(function (data) {
vm.products = data;
});
}
В редакторе Edit после того, как я отредактировал продукт, я возвращаюсь к списку, например:
vm.product.$update().$promise;
$state.go('productList');
Он не загружает список с новыми данными всегда, он показывает старые данные в первом прогоне в целом, а затем после второго обновления и вручную возвращаюсь в состояние списка, он начинает обновляться после каждого обновления.
Я пробовал это, но не работал:
vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });
Что мне не хватает?
Я думаю, что вы загружаете новое состояние до завершения обновления - попробуйте переместить переход состояния после завершения обновления:
vm.product.$update().then(function(){
$state.go('productList', {}, { reload: true });
});
Я думаю, что это должно работать для обновления текущего состояния.
$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams
У меня была такая же проблема, когда список не обновлялся после редактирования. Обертка $state.go в $timeout-функции решила мою проблему.
$timeout(function(){
$state.go('publishers.list', {}, { reload: true });
},200);
Я думаю, что это был бы лучший подход
<a data-ui-sref="directory.organisations.details" data-ui-sref-opts="{reload: true}">Details State</a>
Мы можем перезагрузить состояние только из HTML.