我的 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/