url - 如何在 AngularJS 中设置查询参数而不进行路由?

标签 url angularjs routes query-string

我的 Angular 应用程序允许用户加载项目,当发生这种情况时,我想设置一个包含该项目 ID 的查询字符串,这样如果用户刷新页面(或想要链接到该页面), URL 已设置(如果 $routeParams 中存在 Id,则已存在加载该项目的代码)。

如何设置该查询参数而不导致路由?如果发生路由,页面上的其他内容将被重置(包括必须重新加载其所有数据的插件),因此仅查询参数更改很重要。

简而言之,当我加载第 123 项时,我想要发生的就是 URL 更改为:

www.myurl.com/#/Items

至:

www.myurl.com/#/Items?id=123

没有发生任何路由。

最好的方法是什么?

最佳答案

在您的 $routeProvider 中配置将 reloadOnSearch 设置为 false:

$routeProvider
  .when('/items', {
    controller: 'ItemsCtrl',
    templateUrl: '/templates/items',
    reloadOnSearch: false
  },
  ...
);

并在 Controller 中使用 $location.search() 设置 id 参数:

$location.search('id', 123);

关于url - 如何在 AngularJS 中设置查询参数而不进行路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513093/

相关文章:

AngularJS:具有多个模板的动态自定义指令

javascript - 如何在 express 中将 url 作为 "url parameter"传递?

javascript - Angular : Keep view state between differents views with differents controllers

javascript - AngularJS 中的全局 "App" Controller

Angularjs 不更新变量

javascript - 如何在嵌套路由中传递模型 - emberjs

url - 在 Wireshark 中解码 URL

c# - uri 的相对路径

php - 将参数传递给分页 url

java - 如何在将 servlet 转发到 jsp 页面后更改 url?