gpt4 book ai didi

javascript - 如果 AngularJS 匹配一个值,它会在加载时更改单个 URL 参数

转载 作者:行者123 更新时间:2023-11-30 15:57:58 26 4
gpt4 key购买 nike

我正在开发一个网络应用程序,当您浏览网站时,参数会传递给 View 。这些参数由用户过滤器设置。

我遇到了一个问题,即某些 View 不支持来自其中一个过滤器的特定值,并且在发生这种情况时,需要将参数重置为两种可能性之一。

我一直在使用 $location.search({ type: "blue"}) 但我意识到如果 url 中/ View 中还有其他参数,这些参数将被删除仅适用于使用该代码设置的那个。

基本上,在某些 View 上,如果 type 参数是 all,则它需要更改为 blue,而在其他 View 上则需要更改变为红色

不幸的是,这个参数是由应用的当前过滤器在链接中设置的,所以它不像仅仅更改 href 那样简单。

你可以在这个例子中看到,当来自 blue 的 View 时,我试图将只能设置为 red 的 View 更改为 red 使用路径数组设置(并在链接中)。

for (let i = 0; i < redOnlyViews.length; i++) {
if (newUrl.indexOf(redOnlyViews[i]) > -1 && type === "blue") {
$location.path("/" + redOnlyViews[i]).search({type: "red"});
}
}

(这是在 $rootScope.$on("$locationChangeStart", function (event, newUrl, oldUrl) 函数中)

如果有一种方法可以像这样更改参数,同时不更改任何其他参数,那就太棒了!

希望这是有道理的,谢谢 :)

为匿名而将内容更改为颜色,我没有生气 :)

最佳答案

如果你想设置一个单一的搜索参数你可以这样做

$location.search(angular.extend($location.search(), {type: 'red'}))

关于javascript - 如果 AngularJS 匹配一个值,它会在加载时更改单个 URL 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38206805/

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