Angular 如何改变路线,使可观察的工作?
我试图从一个可观察对象加载信息,当我正确输入它加载的路由时,但是当我使用routerLink更改路由时,可观察对象停止显示管道异步的信息 我展示可观测信息的方式如下: 配置文件组件Angular 如何改变路线,使可观察的工作?,angular,firebase,asynchronous,observable,routerlink,Angular,Firebase,Asynchronous,Observable,Routerlink,我试图从一个可观察对象加载信息,当我正确输入它加载的路由时,但是当我使用routerLink更改路由时,可观察对象停止显示管道异步的信息 我展示可观测信息的方式如下: 配置文件组件 <ng-container *ngIf="this.observable| async as profilevar; else loading"> <div class="main-content"> <div class=
<ng-container *ngIf="this.observable| async as profilevar; else loading">
<div class="main-content">
<div class="profile-content shadow">
<div class="profile-content-top">
<div class="profile-image">
<div class="profile-image-avatar">
<img src="{{ profilevar?.profile_url }} "
<div class="nav-bar-mobile">
<div class="element-bar profile" routerLink="/profile" routerLinkActive="selecteditem">
<i class="fas fa-user-circle"></i>
</div>
<div class="element-bar settigs" routerLink="/settings" routerLinkActive="selecteditem">
<i class="fas fa-cog"></i>
</div>
</div>
下面是包含要更改路由的元素的组件:
导航栏组件
<ng-container *ngIf="this.observable| async as profilevar; else loading">
<div class="main-content">
<div class="profile-content shadow">
<div class="profile-content-top">
<div class="profile-image">
<div class="profile-image-avatar">
<img src="{{ profilevar?.profile_url }} "
<div class="nav-bar-mobile">
<div class="element-bar profile" routerLink="/profile" routerLinkActive="selecteditem">
<i class="fas fa-user-circle"></i>
</div>
<div class="element-bar settigs" routerLink="/settings" routerLinkActive="selecteditem">
<i class="fas fa-cog"></i>
</div>
</div>
什么有效:
- 通过直接从浏览器路径加载数据
什么不起作用:
- 当我使用导航栏组件和routerLink更改路线时
变量this.observable包含this.db.object('/profiles/'+vid).valueChanges()
如何解决此问题?已解决
经过调查,我找到了解决问题的办法
我通过在订阅类型变量中分配observable来解决这个问题
导出类ProfileComponent实现OnInit、OnDestroy{
subscriptionObservable:订阅;
可观察的:可观察的;
构造函数(){
this.subscriptionObservable=this.observable.subscribe((数据:Profile)=>
{...}));
}
恩贡德斯特罗(){
if(this.subscriptionObservable){
this.subscriptionObservable.unsubscribe();
}
}
}
完成组件后,我将取消订阅subscriptionObservable变量 解决
经过调查,我找到了解决问题的办法
我通过在订阅类型变量中分配observable来解决这个问题
导出类ProfileComponent实现OnInit、OnDestroy{
subscriptionObservable:订阅;
可观察的:可观察的;
构造函数(){
this.subscriptionObservable=this.observable.subscribe((数据:Profile)=>
{...}));
}
恩贡德斯特罗(){
if(this.subscriptionObservable){
this.subscriptionObservable.unsubscribe();
}
}
}
完成组件后,我将取消订阅subscriptionObservable变量