我有一个Angular 7应用,并且需要从较旧的旧版系统导航到该应用。
这个较旧的系统仍然使用JSP页面,但是我可以使用jQuery调用新的Angular 7应用。
要求是导航到Angular应用,并根据从旧屏幕的url中传递的参数预先填充或过滤字段/视图。
所以,我的问题是,如何调用一个http://localhost:8080/myScreen
之类的Angular路由url,并从完全独立的应用程序屏幕中提供它的url参数,然后在屏幕组件内部使用它来预过滤数据? / p>
使用url参数(例如:http://localhostl:8080/myScreen?param1=Hello¶m2=World
答案 0 :(得分:1)
您可以通过以下方式使用ActivatedRoute:
MyScreenComponent.ts
constructor(private route: ActivatedRoute) { }
ngOnInit()
const {param1,param2} = this.route.snapshot.params;
//do what you want with the params
}
已将您的路线配置为
{ path: 'myScreen/:param1/:param2', component: MyScreenComponent }
如果您愿意,可以将上面的代码更改为使用queryParams。
答案 1 :(得分:0)
考虑一下:
ngOnInit() {
console.log('BComponent::ngOnInit');
this.myForm = this.fb.group({
fname: 'default fname',
lname: 'default lname'
});
this.route.queryParams.subscribe(params => {
this.myForm.setValue({
fname: params['param1'],
lname: params['param2']
})
});
}
此处的myForm是由queryParams填充的。
选中此stackblitz。