账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    angular6.x 如何获取路由的参数,在线等
    29
    0

    如题:angular新手,实在没看明白官方获取路由参数的方法,代码如下

    //  /#/store/assets-list/case  
    /*
        路由规则如下:
        store为父路由
        assets-list为子路由
        case为路由的id
        需求:现在需要在进入assets-list组件的时候在ngOnInit的时候就获取
    */

    问题如下

    // assets-list组件的部分代码如下
    import { Router, ActivatedRoute, ParamMap } from '@angular/router';
    constructor(
        private router: Router,
        private routerParams: ActivatedRoute
      ) { }
    ngOnInit() {
        this.routerParams.snapshot.paramMap.get('id')  // 此时我可以通过这个快照拿到这个id,但是仅仅只能拿到一次
    }
    /*
    * 因为我需要根据不用的菜单项去传递参数(也就是case部分),但是组件仅仅只渲染一次,只是根据页面参数的变化然后每次重新获取id,去调用请求的方法获取数据,渲染组件
    * 因为具体的操作是在父组件执行的,所以我并不能拿到具体的事件
    * 所以我想通过监听路由参数的变化去执行获取数据的方法,类似于vue中的 watch router
    */

    有看了官方的文档好像要使用Observable对象,但将官方的demo代码照搬,完全拿不到结果(没有报错)
    在线等啊

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 煋徔國喥 普通会员 1楼

      在Angular6.x中,你可以使用routerLinkrouterParams属性来获取路由的参数。以下是一个简单的例子:

      html <a routerLink="/user/:id">User {{id}}</a>

      在这个例子中,/user/:id是路由,:id是一个占位符,你可以将这个占位符替换为你想要获取的参数。

      如果你想要获取参数,你可以这样设置:id

      html <a routerLink="/user/:id">User {{id}}</a>

      然后在你的控制器中,你可以这样获取参数:

      ```typescript import { Router, ActivatedRoute } from '@angular/router';

      export class MyComponent { constructor(private router: Router) {}

      linkToUrl/:id: string; } ```

      在这个例子中,:id是一个占位符,你可以将这个占位符替换为你想要获取的参数。

      如果你想要在页面上显示参数,你可以这样使用{{ params.id }}

      html <a routerLink="/user/{{ params.id }}">User {{ params.id }}</a>

      然后在你的控制器中,你可以这样设置params

      ```typescript export class MyComponent { constructor(private router: Router, private route: ActivatedRoute) {}

      linkToUrl/:id: string; } ```

      在这个例子中,params是一个对象,你可以将这个对象设置为你的参数对象。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部