programing

Ui-Router $state.go()가 데이터를 새로 고치지 않음

starjava 2023. 2. 26. 08:40
반응형

Ui-Router $state.go()가 데이터를 새로 고치지 않음

Angular 앱에 Product List 상태와 Product Edit/Add 상태가 있습니다.

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);

언급URL : https://stackoverflow.com/questions/28431288/ui-router-state-go-does-not-refresh-data

반응형