我想订同样的
Observable
好几次都没用。我有一个提供者给我
可观察的
从
AngularFirestore
对象。这是我的提供者:
@Injectable()
export class MyProvider {
private myObservable: Observable<any>;
constructor(private aFs: AngularFirestore) {
//retriving some data and putting in myObservable
}
getObservable() {
return this.myObservable;
}
}
在我的
myPage.ts
我愿意:
this.mySubscription = this.myProvider.getObservable().subscribe(value => {
//something that works
});
在另一个组件中,我也这样做,但它没有给我任何东西。我如何分享
可观察的
是服务商还是服务商?我试过
unsubscribe()
当我从页面弹出到组件时,当我调用
取消订阅()
在组件上,然后导航到我的页面,
subscribe()
不起作用。
到
取消订阅()
在我的页面中,我会:
ionViewWillLeave() {
this.mySubscription.unsubscribe();
}
到
取消订阅()
在我的组件中,在导航到我的页面之前,我会:
myEvent() {
this.mySubscription.unsubscribe();
this.navCtrl.push(MyPage);
}
当我从我的页面弹出
取消订阅()
似乎工作正常,因为我能看到
myObservable
我组件中的数据。当我试图从组件导航到
MyPage
这个
取消订阅()
好像没用,因为我什么也看不见。我也试过调试,但看不到
订阅()
在第二种情况下。
我将提供者导入
app.module.ts
在下面
providers
然后我把它导入我的页面:
MyPaG.TS
import { MyProvider } from ..;
构造函数(mypage.ts):
constructor(private myProvider: MyProvider) {..}
在我的组件中:
支原体
从..;导入{myprovider};
构造函数(home.ts)
构造函数(私有myprovider:myprovider){..}
我澄清一下
MyComponent
不用于
小精灵
!我把它用在
Home
然后我用它来推动
小精灵
. 我这么做是因为我想在
肌力成分
然后我想推动
小精灵
包含数据详细信息的。
很容易,我想在组件和页面上共享从服务获取的相同可见结果,并且我想
订阅()
两者兼而有之。这可能吗?