加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular2路由 – 浏览到不刷新组件的同一路由?

发布时间:2020-12-17 07:46:07 所属栏目:安全 来源:网络整理
导读:我已升级为使用路由器不推荐使用新的Angular 2路由器,一些行为已经改变. 我遇到的页面是一个搜索页面.我们选择使用HashLocationStrategy将所有搜索字词放在网址中.路线如下所示: const routes: RouterConfig = [ { path: '',component: HomeComponent },{ p
我已升级为使用路由器不推荐使用新的Angular 2路由器,一些行为已经改变.

我遇到的页面是一个搜索页面.我们选择使用HashLocationStrategy将所有搜索字词放在网址中.路线如下所示:

const routes: RouterConfig = [
  { path: '',component: HomeComponent },{ path: 'search/:term/:cat/:page/:sort/:size/:more',{ path: 'search/:term/:cat/:page/:sort/:size',{ path: 'search/:term/:cat/:page/:sort',{ path: 'search/:term/:cat/:page',{ path: 'search/:term/:cat',{ path: 'search/:term',{ path: 'details/:accountNumber',component: DetailsComponent }
];

我知道一个查询字符串方法可能更适合所有这些选项,但由其他人决定的项目需求…

无论如何,如果我导航到localhost /#/ search /你好使用this.router.navigate([‘/ search / Hello’]);那么路由器工作正常,一切都很好.在该页面上,如果我尝试this.router.navigate([‘/ search / World’]);那么浏览器地址栏中的URL会相应更新,但是组件根本不会更改.

以前我可以使用routerCanReuse来表示我想要重用搜索组件,并且当导航发生时,routerOnReuse会重新运行搜索.我没有看到等同于这些在@角/路由器.如何使用新的URL参数重新加载当前路由?

我正在运行版本2.0.0-rc.3 for Angle 2和3.0.0-alpha.8 of @ angular / router.

如果只有params有更改,组件本身将不会再次初始化.但您可以订阅发送的参数的更改.

例如,在ngOnInit方法中,您可以执行以下操作:

ngOnInit() {
    this.sub = this.route.params.subscribe(params => {
       const term = params['term'];
       this.service.get(term).then(result => { console.log(result); });
     });
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读