当前位置: 首页 > 面试题库 >

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

於意蕴
2023-03-14
问题内容

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

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)。

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

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



 类似资料:
  • 问题内容: 我有一个带有链接的“主页”组件,当您单击链接时,产品组件就会随产品一起加载。我还有另一个始终可见的组件,其中显示了“最近访问过的产品”的链接。 在产品页面上时,这些链接不起作用。当我单击链接时,URL会更新,并且会进行渲染,但是产品组件不会随新产品一起更新。 请参见以下示例: Codesandbox示例 以下是index.js中的路由: ProductHistory中的链接如下所示:

  • 问题内容: 有人知道如何在不更改url的情况下更改ui路由器状态吗?如下代码所示;在某些情况下,需要将用户重定向到403或401状态。我希望能够执行此重定向而无需更改url。 问候,klmdb 问题答案: 将选项传递给$ state.go 实际使用它:http : //plnkr.co/edit/w2aolrt9wdW3EFcEB3Lw?p=preview

  • 我有几个不同的路由,但包含相似的参数。 示例: 请注意,所有三个视图都使用相同的图表控制器来控制视图。这是一个相当通用的控制器,但它需要在可用的图表类型之间切换。。。同时保持路线的其余部分<示例:(这不起作用) 有人知道如何在不完全重新键入或重建路由路径的情况下轻松更新路由参数吗?

  • 问题内容: 我正在使用react-router开发一个React应用程序。我有一个项目页面,其URL如下: 当项目组件加载时,我从componentDidMount事件触发了对该项目的数据请求。我现在遇到一个问题,如果我直接在两个项目之间切换,那么只有id会这样改变… componentDidMount不会再次触发,因此不会刷新数据。我是否应该使用另一个生命周期事件来触发我的数据请求,或者使用其他

  • 我正在使用React-Router开发一个react应用程序。我有一个项目页面,其url如下: 当项目组件加载时,我从componentDidMount事件触发该项目的数据请求。我现在遇到了一个问题,如果我直接在两个项目之间切换,那么只有id像这样更改... componentDidMount不会再次触发,因此不会刷新数据。是否有另一个生命周期事件我应该用来触发我的数据请求或一个不同的策略来解决这

  • 问题内容: 我有一个ng-repeat,它在更改正在使用的数组中的数据时不会更新。我已经研究了一段时间,但似乎没有任何效果。最初,当页面加载时,ng- repeat显示数据集的第一页,在获取新数据(下一页)并使用该数据设置该数组时,ng- repeat不会注意到更改,并且永远不会填充更新的数组。如果有人可以在正确的方向上指导我,将不胜感激。 }]); 问题答案: 尝试将tbody包装在div中,但