一尘不染

更改路线参数而不更新视图

angularjs

我目前正在尝试弄清楚如何在不重新加载整个页面的情况下更改路由参数。例如,如果我从

http://www.example.com/#/page

但将名称更新为“乔治”,将路线更改为:

http://www.example.com/#/page/george

如果我已经路由了http://www.example.com/#/page/:name

无需重新加载位置。可以只设置$ routeParams.name =“ George”吗?

编辑:
或者,有没有一种方法可以更新http://www.example.com/#/page?name=George而无需重新加载或重置页面?


阅读 175

收藏
2020-07-04

共1个答案

一尘不染

确定,经过大量搜索。我回答了我自己的问题。

我发现很难在角度文档中找到任何东西,但是有时候,一旦找到它,它就会改变您对问题的思考方式。

我从这里开始:http :
//docs.angularjs.org/api/ng。$
location带我到这里:http :
//docs.angularjs.org/guide/dev_guide.services。$
location带给我这个问题:使用$
location.path但不重新加载ngView的AngularJS分页

我最终做的是:我$location.search({name: 'George'});在要更改名称的位置添加了一个($ scope。$ watch)。

但是,这仍然会重新加载页面,除非您执行底部StackOverflow链接中的操作并将参数添加到传递给的对象中$routeProvider.when。就我而言,它看起来像:$routeProvider.when('/page', {controller: 'MyCtrl', templateUrl:'path/to/template', reloadOnSearch:false})

我希望这可以使其他人免于头痛。

2020-07-04