在ui-router中,如何只重新解析最本地的状态?
in ui-router, how to re-resolve only the most local state?
我有以下状态树,使用 ui-router,
1 login
2 root (abstract, resolves app-prefs, user-prefs)
2.1 home (builds a refresh button, should refresh whatever is being shown)
2.1.1 dashboard (resolves dashboard-prefs)
2.1.2 search (resolves search-prefs)
2.1.3 etc
2.2 etc
从 home
开始,当用户在 XYZ
状态下按下刷新按钮时,我希望重新输入 XYZ
以重新解析自己的方式XYZ-prefs
但不是层次结构上面的东西。像
$state.go("dashboard", dashboardParams, {please-resolve-only-dashboard})
当我尝试时,来自 home
$state.go("dashboard", dashboardParams, {reload:true})
导致从root
向下的所有都需要重新解析,这是有问题的,而且代价高昂,因为我只需要重新解析dashboard-prefs
.我可以在一些解析器中设置一个更详细的方案,而不是重新解析自己,但恐怕这本身可能成为一项任务。还有其他更惯用的方法吗?
谢谢
有一种本机方法可以做到这一点 - 只需更改要重新加载的状态的参数。
要重现上述状态定义,让我们像这样定义仪表板:
.state('dashboard', {
parnet: 'home',
url: "^/dashboard",
params: { updater : 1, },
...
})
我们可以看到,我们根本没有接触 url
。它永远不会有任何变化只是 /dashboard
但是我们介绍了最新版本的非常酷的功能 - params: {}
。它定义了一些参数 - updater
在我们的例子中。每当发送此参数,并且与其当前值不同时,此子状态 (且仅此子状态) 是 re-init
在此处查看有关状态 params: {}
的更多信息:http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider
现在,我们可以创建这个重新加载 link:
<a ui-sref="dashboard({updater : ($stateParams.updater + 1) })">reload</a>
并且随着这个增量,我们可以确定,重新加载将重新加载这个状态
检查一下here
我有以下状态树,使用 ui-router,
1 login
2 root (abstract, resolves app-prefs, user-prefs)
2.1 home (builds a refresh button, should refresh whatever is being shown)
2.1.1 dashboard (resolves dashboard-prefs)
2.1.2 search (resolves search-prefs)
2.1.3 etc
2.2 etc
从 home
开始,当用户在 XYZ
状态下按下刷新按钮时,我希望重新输入 XYZ
以重新解析自己的方式XYZ-prefs
但不是层次结构上面的东西。像
$state.go("dashboard", dashboardParams, {please-resolve-only-dashboard})
当我尝试时,来自 home
$state.go("dashboard", dashboardParams, {reload:true})
导致从root
向下的所有都需要重新解析,这是有问题的,而且代价高昂,因为我只需要重新解析dashboard-prefs
.我可以在一些解析器中设置一个更详细的方案,而不是重新解析自己,但恐怕这本身可能成为一项任务。还有其他更惯用的方法吗?
谢谢
有一种本机方法可以做到这一点 - 只需更改要重新加载的状态的参数。
要重现上述状态定义,让我们像这样定义仪表板:
.state('dashboard', {
parnet: 'home',
url: "^/dashboard",
params: { updater : 1, },
...
})
我们可以看到,我们根本没有接触 url
。它永远不会有任何变化只是 /dashboard
但是我们介绍了最新版本的非常酷的功能 - params: {}
。它定义了一些参数 - updater
在我们的例子中。每当发送此参数,并且与其当前值不同时,此子状态 (且仅此子状态) 是 re-init
在此处查看有关状态 params: {}
的更多信息:http://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$stateProvider
现在,我们可以创建这个重新加载 link:
<a ui-sref="dashboard({updater : ($stateParams.updater + 1) })">reload</a>
并且随着这个增量,我们可以确定,重新加载将重新加载这个状态
检查一下here