Javascript 如何使用angular ui路由器重新加载状态?

Javascript 如何使用angular ui路由器重新加载状态?,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,如何使用angular ui路由器重新加载控制器和整个侧面 $state.reload() or $state.go('myState') 不起作用。唯一有效的方法是: $state.go('anotherState'); $state.go('myState'); 去另一个州然后回来。然后,正确地重新加载视图。没有这个黑客怎么做 关于您可以在不刷新页面的情况下使用此选项。这将重新加载视图: $state.transitionTo($state.current, $stateParams

如何使用angular ui路由器重新加载控制器和整个侧面

$state.reload() or $state.go('myState')
不起作用。唯一有效的方法是:

$state.go('anotherState');
$state.go('myState');
  • 去另一个州然后回来。然后,正确地重新加载视图。没有这个黑客怎么做

关于

您可以在不刷新页面的情况下使用此选项。这将重新加载视图:

$state.transitionTo($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});
或者试试这个

$state.go($state.current.name,{},{reload: $state.current.name});

我发现这是使用ui路由器刷新的最短工作方式:

$state.go($state.current, {}, {reload: true}); //second param is for $stateParams if you have any.
新版本也支持这一点:

$state.reload();  
它是以下各项的别名:

$state.transitionTo($state.current, $stateParams, { 
  reload: true, inherit: false, notify: true
});       // this is also used to reload the controller and view without page reload.

文档:

是否要刷新页面?这是SPA应用程序,因此不应该。它只应该像我说的那样重新加载控制器当你说“不工作”时,你怎么知道它不重新加载?如果您将$onInit()放在该州的控制器中,并在那里登录控制台,它是否会向您提供消息?如果是这样,它是“工作的”。@rrd我有一个预加载程序,它在页面第一次加载时运行,我看到作用域上有什么,如果控制器被重新加载,你能发布你的状态以便我们可以看到它们吗?$state.reload()中可能有错误不工作。然后您需要发布HTML并使用您正在使用的ui路由器版本路由文件。我已经更新了答案。请检查一下,试试看