Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
531 views
in Technique[技术] by (71.8m points)

angularjs - Ui-Router $state.go() does not refresh data

I have a Product List state and Product Edit/Add state in my Angular app.

Product List data gets loaded in the controller (I didn't think I need resolve to be defined in state config) which gets data from an ngResource:

function InventoryListCtrl (myResource) {
  var vm = this;

  myResource.query(function (data) {
    vm.products = data;
  });
}

On Edit Controller, after I edit a product I get back to list state like this:

vm.product.$update().$promise;
$state.go('productList');

It doesn't load list with new data always, it shows old data in first run generally, then after I do second update and manually get back to list state it starts to refresh after each update.

I've tried this, but didn't work either:

vm.product.$update().$promise;
$state.go('productList', {}, { reload: true });

What am I missing?

question from:https://stackoverflow.com/questions/28431288/ui-router-state-go-does-not-refresh-data

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I think you're loading the new state before the update has completed - try moving the state transition to after the update completion:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...