gpt4 book ai didi

javascript - 页面刷新后,ui-router 看不到 url 搜索参数

转载 作者:搜寻专家 更新时间:2023-11-01 04:36:25 25 4
gpt4 key购买 nike

我有一个看起来像这样的状态

.state('home.foo.bar', {
url: 'view?one&two',
views: {
'base': {
templateUrl: 'blah',
controller: 'blahCtrl'
}
},
reloadOnSearch: false
})

如果我在我的模板中导航到这个状态

ui-sref="home.foo.bar({one: valueOne, two: valueTwo})"

一切顺利,网址是

.com/view?one=valueOne&two=valueTwo

但是,如果我刷新页面,url 将更改为 .com/view 而不是 $state.params$stateParams包含值。

如果我像这样添加一个解决步骤

.state('home.foo.bar', {
url: 'view?one&two',
views: {
'base': {
templateUrl: 'blah',
controller: 'blahCtrl'
}
},
resolve: {
p: function($location, $stateParams, $state) {
console.log($location.search(), $stateParams, $state);
if(!$stateParams.one && !$stateParams.two {
$stateParams.one = $location.search().one;
$stateParams.two = $location.search().two;
} else {
return $location.search().one;
}
}
},
reloadOnSearch: false
})

然后,当我最初导航到模板中的状态时,日志语句不会为 $location.search() 打印任何内容但显示 oneValuetwoValue$stateParams$state.params .当我刷新它的对面时 $location.search()正确显示参数及其值,但 $stateParams$state.params是空的。

添加 if 语句并设置值显式解决了我的错误,但这不能按预期工作吗?

我是否漏掉了一些明显的东西?

最佳答案

我认为这可能是因为您在开头或您的 URL 中缺少斜杠:

.state('home.foo.bar', {
url: '/view?one&two',
views: {
'base': {
templateUrl: 'blah',
controller: 'blahCtrl'
}
},
reloadOnSearch: false
})

关于javascript - 页面刷新后,ui-router 看不到 url 搜索参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30038214/

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