- 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 条
- 全部回答
-
煋徔國喥 普通会员 1楼
在Angular6.x中,你可以使用
routerLink和routerParams属性来获取路由的参数。以下是一个简单的例子: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是一个对象,你可以将这个对象设置为你的参数对象。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
