Angular2 - 将 routerLink 参数添加到所选表值
Posted
技术标签:
【中文标题】Angular2 - 将 routerLink 参数添加到所选表值【英文标题】:Angular2 - Adding routerLink parameters to chosen table value 【发布时间】:2017-07-18 14:53:52 【问题描述】:我有一个 routerLink 附加到我在 angular2 组件的 html 中创建的表中的前导值。单击该表值后,我希望 routerLink 不仅发送到下一个组件,还将选择的值带到下一个组件。
当前代码示例
<a [routerLink]="['/Records']" ><td> Member.Name <td></a>
我有链接,因此它正在发送到记录页面,但是如何将名称发送到该组件,以便我可以显示我要显示的特定记录?
【问题讨论】:
【参考方案1】:将路由参数添加到url
,然后使用ActivatedRoute
访问该值。
path: "Records/:name", component: RecordsComponent
关联
<a [routerLink]="['/Records', Member.Name]" ><td> Member.Name <td></a>
获得价值
@Component(
...
)
export class RecordsComponent implements OnInit
constructor(private _route: ActivatedRoute)
ngOnInit()
this._route.params.subscribe((params) =>
var recordName = params["name"];
//load record data
);
【讨论】:
我需要使用什么导入才能实现 OnInit? 从'@angular/core'导入OnInit; 我已经正确实现 OnInit 并且不再出现错误,但是,我收到另一个错误,提示它找不到名称 ngOnInit。 是的,做到了!现在还有一个问题:有没有一种方法可以在 ngOnInIt 函数之外使用该 recordName 变量? (我正在尝试将该名称发送到同一组件中的 api 调用函数) 谢谢你,泰迪,我永远欠你的债。【参考方案2】:这样定义你的路线:
path: 'Records/:id', component: xxx
声明式:
<a [routerLink]="['/Records', Member.name]"> Member.name </a>
以编程方式:
goToMemberDetails(name)
this.router.navigate(['/Records', name]);
【讨论】:
【参考方案3】:@Component(
...
)
export class RecordsComponent implements OnInit
constructor(private _route: ActivatedRoute)
ngOnInit()
this._route.params.subscribe((params) =>
var recordName = params["name"];
//load record data
);
【讨论】:
以上是关于Angular2 - 将 routerLink 参数添加到所选表值的主要内容,如果未能解决你的问题,请参考以下文章
在Angular2 Dart中设置路由器和RouterLink的正确方法是啥
Angular2 beta 出现异常“没有路由器提供者!(RouterLink -> 路由器)”
无法绑定到“routerlink”,因为它不是使用 angular2-webpack-starter 的已知本机属性 [重复]
routerlink更改时不调用Angular 2 ngOnInit