Mic*_*lis 3 angular angular-observable
如何将这些与可观察者合并为一个?它们具有相同的功能.
this.sub = this.route.params.subscribe((params: any) => {
// functionality
});
this.sub = this.route.queryParams.subscribe((params: any) => {
// same functionality
});
Run Code Online (Sandbox Code Playgroud)
你可以使用combineLatest来做到这一点:
import { ActivatedRoute } from '@angular/router';
import { combineLatest } from 'rxjs';
// ...
class MyComponent {
constructor(private route: ActivatedRoute) { }
ngOnInit() {
const params = this.route.params;
const queryParams = this.route.queryParams;
combineLatest(params, queryParams, (params, qparams) => ({ params, qparams }))
.subscribe(allParams => console.log(allParams.params, allParams.qparams));
}
}
Run Code Online (Sandbox Code Playgroud)
params和qparams将是属性名称为param名称且值为值的对象.所以对于一条路线:
RouterModule.forRoot([{
path: 'test1/:id',
component: Test1Component
}])
Run Code Online (Sandbox Code Playgroud)
与params
http://localhost:4200/test1/paramvalue?qparam=qpvalue
Run Code Online (Sandbox Code Playgroud)
allParams将是
{
params: {
id: "paramvalue"
},
qparams: {
qparam: "qpvalue"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |