gpt4 book ai didi

angularjs - 如何在不重新加载 ui-view 的情况下更新 $stateParams? Angular ui路由器

转载 作者:行者123 更新时间:2023-12-03 11:32:02 25 4
gpt4 key购买 nike

获取上下文, Angular ,ui-router,没什么特别的,用 3 个命名的 ui-views 构建的根 View 。
所以在 index.html我们有

<body>
<div ui-view='left'>
<div ui-view='center'>
<div ui-view='right'>
</body>

我的路线看起来像
$stateProvider
.state('main', {
url: '/',
views: {
'left': {templateUrl: 'foo.html'},
'center': {templateUrl: 'bar.html'},
'right': {templateUrl: 'xyz.html'}
}
})
.state('main.b', {
url: '/b',
params: { foo: {value: 'bar'} }
views: { 'right@': {templateUrl: '123.html'} } // I wish to update $stateParams in 'left@' view
})
.state('main.c', {
url: '/c',
params: ...
views: { 'left@': ..., 'center@': ..., 'right@': .. }
});

有没有办法去 b 状态更新“中心”和“左” View 中的 $stateParams ?我可以使用服务获得它,但我需要添加一个 $watch到我需要的变量,对我来说它看起来有点笨拙。

进入 c 状态我实际上可以得到我想要的东西,但是 View 被重新加载,我希望避免这种行为,因为我在“左” View 中有一个 Canvas 。

最佳答案

您可以使用以下内容转到特定路线而无需重新加载 View :

$state.go('.', {parm1: 1}, {notify: false});

最后一个对象文字表示您可以传递给 go 的选项.如果您设置 notifyfalse ,这实际上会阻止 Controller 重新初始化。 .开头是您要访问的绝对状态名称或相对状态路径。

重要的是 notify尽管。

关于angularjs - 如何在不重新加载 ui-view 的情况下更新 $stateParams? Angular ui路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33484457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com