Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs:如何使用ui路由器重新加载或刷新ui视图_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs:如何使用ui路由器重新加载或刷新ui视图

Angularjs:如何使用ui路由器重新加载或刷新ui视图,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我使用的是AngularUI路由器。它在每个路由中都有状态,但我无法重新加载状态。 这是我的密码 app.config(function ($urlRouterProvider, $stateProvider) { $urlRouterProvider.otherwise("/home"); $stateProvider .state('home', { url: "/home", controller: 'HomeController',

我使用的是AngularUI路由器。它在每个路由中都有状态,但我无法重新加载状态。 这是我的密码

app.config(function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise("/home");
$stateProvider
    .state('home', {
        url: "/home",
        controller: 'HomeController',
        views: {
        "viewHome": {
            templateUrl: "home.html"
        },

    })
}
在HTML中

<a href="#/home">Home</a>


当我单击主链接时,它重定向到主url,但当我尝试再次单击主链接时,它没有刷新相同的状态,它必须刷新主状态并再次调用HomeController。请给我一些解决方案。

尝试将
target=“\u self”
添加到
a
中。您还可以使用
$window.location
。另外,
$route.reload()
应该可以做到这一点。

使用angular ui router,我成功地重新加载了一个状态:

$state.go($state.current.name, {}, {reload: true})
这将重新加载状态并重新初始化控制器。

尝试使用:

$window.location.reload()

重新加载页面的内容。在任何控制器中键入该行。

您可以指定要调用它的状态,它将重新加载页面和控制器。此代码适用于我:

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


target=“\u self”不工作。。。以及将$window.location或$route.reload()放在何处,因为它在HomeControllery内不起作用您需要将
$window
$route
分别导入控制器以使用它们感谢@fusio的建议,但它不起作用。可能是因为我使用的是ui路由器,它有状态提供程序,我也尝试了
$state.transition(“home”)
,但它也不再工作了哦,我明白了。您是否尝试过
$state.go()
?(它应该在内部使用
transition
,所以我不确定它是否会有帮助。)是的,但它在控制台中抛出了一个错误
TypeError:Object#没有方法“go”
its,因为$state.go()在最新的alpha 0.0.2版本中可用,并且它不是一个稳定的版本,这就是我使用以前的版本0.0.1的原因。这个主题可能是吗[[1]:我不相信这会重新初始化控制器。它似乎只是重新加载状态…这似乎与简单调用$state.reload()有相同的问题;有什么我遗漏了吗?根据控制器的说法,我应该重新验证。有一段时间出现了一个bug,但通过测试angular ui router的0.2.11和0.2.10版本,该bug似乎在v0.2.11中得到了修复。如果在这两个版本之间更改版本,您可以看到修复。升级到0.2.13,似乎可以工作。FWIW,.reload()似乎也适用于该版本。谢谢!
$state.go('state.name',{},{reload:true});