Angular 在角度路由器上通过可观测状态

Angular 在角度路由器上通过可观测状态,angular,ionic-framework,observable,angular-routing,angular-router,Angular,Ionic Framework,Observable,Angular Routing,Angular Router,使用离子与角8 我想要这样的观察: let request: Observable<any> = return this.http.get('some url'); Bun我尝试在该组件中进行路由时出错 DataCloneError:未能对“历史记录”执行“pushState” 当我转到组件时,如何在组件中传递Observable?这无法完成,因为Observable无法转换为字符串。请参见文件中的示例: this.router.navigate(['/heroes', { id:

使用离子与角8

我想要这样的观察:

let request: Observable<any> = return this.http.get('some url');
Bun我尝试在该组件中进行路由时出错

DataCloneError:未能对“历史记录”执行“pushState”


当我转到组件时,如何在组件中传递Observable?

这无法完成,因为Observable无法转换为字符串。请参见文件中的示例:

this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]); 
// is converted to the url 
// --> localhost:4200/heroes;id=15;foo=foo

如何将一个可观察的对象转换为一个简单的字符串?如果可能的话,它将导致一个非常长的url。但是可以观察到的是Javascript代码,因此需要对其进行
评估。这将为向应用程序中插入恶意代码的攻击打开大门,因此angular严格禁止。(事实上,你使用离子并没有改变这一点!)


TLDR:查询参数不适用于复杂逻辑。将其存储在服务等中,并在两个组件中重用它

这是无法做到的,因为无法将可观察对象转换为字符串。请参见文件中的示例:

this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]); 
// is converted to the url 
// --> localhost:4200/heroes;id=15;foo=foo

如何将一个可观察的对象转换为一个简单的字符串?如果可能的话,它将导致一个非常长的url。但是可以观察到的是Javascript代码,因此需要对其进行
评估。这将为向应用程序中插入恶意代码的攻击打开大门,因此angular严格禁止。(事实上,你使用离子并没有改变这一点!)


TLDR:查询参数不适用于复杂逻辑。将其存储在服务中,等等,并在两个组件中重用它

我建议使用一个服务,在其中存储可观察对象并注入此服务。不要使用路由器来传递数据。我建议使用一个服务,在其中存储可观察数据并注入此服务。不要使用路由器传递数据