Ui-路由器$state.go()不刷新数据
Ui-Router $state.go() does not refresh data
我的 Angular 应用程序中有产品列表状态和产品 Edit/Add 状态。
产品列表数据被加载到控制器中(我认为我不需要在状态配置中定义 resolve),它从 ngResource 获取数据:
function InventoryListCtrl (myResource) {
var vm = this;
myResource.query(function (data) {
vm.products = data;
});
}
在 Edit Controller 上,在我编辑产品后,我回到列表状态,如下所示:
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);
我的 Angular 应用程序中有产品列表状态和产品 Edit/Add 状态。
产品列表数据被加载到控制器中(我认为我不需要在状态配置中定义 resolve),它从 ngResource 获取数据:
function InventoryListCtrl (myResource) {
var vm = this;
myResource.query(function (data) {
vm.products = data;
});
}
在 Edit Controller 上,在我编辑产品后,我回到列表状态,如下所示:
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);