我目前正在尝试弄清楚如何在不重新加载整个页面的情况下更改路由参数。例如,如果我从
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而无需重新加载或重置页面?
确定,经过大量搜索。我回答了我自己的问题。
我发现很难在角度文档中找到任何东西,但是有时候,一旦找到它,它就会改变您对问题的思考方式。
我从这里开始: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)。
$location.search({name: 'George'});
但是,这仍然会重新加载页面,除非您执行底部StackOverflow链接中的操作并将参数添加到传递给的对象中$routeProvider.when。就我而言,它看起来像:$routeProvider.when('/page', {controller: 'MyCtrl', templateUrl:'path/to/template', reloadOnSearch:false})。
$routeProvider.when
$routeProvider.when('/page', {controller: 'MyCtrl', templateUrl:'path/to/template', reloadOnSearch:false})
我希望这可以使其他人免于头痛。