Ui-Router $ state.go()不刷新数据

Bog*_*gac 37 angularjs angular-ui-router

我的Angular应用程序中有产品列表状态和产品编辑/添加状态.

产品列表数据加载到控制器中(我认为我不需要在状态配置中定义解析)从ngResource获取数据:

function InventoryListCtrl (myResource) {
  var vm = this;

  myResource.query(function (data) {
    vm.products = data;
  });
}
Run Code Online (Sandbox Code Playgroud)

在编辑控制器上,在我编辑产品后,我回到列表状态,如下所示:

vm.product.$update().$promise;
$state.go('productList');
Run Code Online (Sandbox Code Playgroud)

它不会始终使用新数据加载列表,它通常会在第一次运行时显示旧数据,然后在我进行第二次更新并手动返回列表状态后,它会在每次更新后开始刷新.

我试过这个,但也没有用:

vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

Bra*_*ber 80

我认为您在更新完成之前加载了新状态 - 尝试将状态转换移动到更新完成之后:

vm.product.$update().then(function(){
  $state.go('productList', {}, { reload: true });
});
Run Code Online (Sandbox Code Playgroud)


man*_*706 14

我认为这应该适用于当前状态刷新.

$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说也很有用,包括在ng-click中,例如`ng-click ="$ state.go('dashboard',{},{reload:true})"` (2认同)