私はいくつかの一般的な質問があります。ページの先頭に戻るmain.ts
経由でonInit
私はアレイに保存するmongooseデータベースサーバーからデータを取得しています。親から子に角度データを渡す4
このアレイは、他のコンポーネントでも使用できる必要があります。 service.ts
サービスで私はたくさんのBehaviorSubjects
とSubjects
を持っています。したがって、私がmongooseから配列データを取得するたびに、私はサービスにメッセージを送り、他のコンポーネントはそのメッセージを購読します。
私は*ngFor
を使用していますHTMLのように、それはエラーメッセージをスローし、それは、配列ではなく、文字列「デフォルトのメッセージ」を期待していたので、私は時々Subject
代わりのBehaviorSubject
を使用しています。
これは、ページ間でデータを移動するための正しい設定であるかどうか疑問に思っています。 今、私は自分のコンポーネントのアップデートにこのメッセージシステムを使用しています。 誰かが私のウェブサイトにコメントや投稿をすると私は自分のサービスにメッセージを送り、私のサービスにオブザーバブルを更新し、私のコンポーネントはそれを再び購読します。
新しいデータのために私のサイトを更新するより良い方法はありますか?*ngFor
からこのエラーメッセージが表示されることがある理由を説明する簡単な方法があります。
つまり、オブザーバブルを更新すると、コンポーネントはすぐにメッセージを受信するか、onInitを受信します。
また、コンポーネントのコンストラクタまたはonInit
で以下を使用することがベストプラクティスであるかどうかという疑問もあります。 私はOnDestroy
を退会します。
this.newService.currentMessageComment
.takeWhile(() => this.alive)
.subscribe(message => {
service.tsなぜあなたはBehaviouSubjectを使用している
public messageSourceMarketCap = new BehaviorSubject<any>('default message');
currentMessageMarketCap = this.messageSourceMarketCap.asObservable();
public messageSourceHistory = new Subject<any>();
currentMessageHistory = this.messageSourceHistory.asObservable();
public messageSouceApi = new BehaviorSubject<any>('default message');
currentMessageApi = this.messageSouceApi.asObservable();
public messageSourceBody = new BehaviorSubject<any>('default message');
currentMessageBody = this.messageSourceBody.asObservable();
役立つことを願って、それをやって、またはの正しい方法は、それが通常のメッセージシステムを再利用するということです。あるいは、同じ変数を更新する場合にのみメッセージシステムを再利用するのですか? – oudekaas
再利用可能性はより良いオプションですが、ユースケースによって異なります。新機能があなたのメッセージシステムに導入されるなら、それが維持可能であることを覚えておいてください。 –