コンポーネント内のノックアウト観測で公開している問題があり、このポストボックスイベントにサブスクライブするビューモデルを持つ別のコンポーネントがあります。コンポーネント間のノックアウトポストボックス - サブスクライバがアクティブであることを確認する方法
公開イベントは、私の「データ・テーブル」コンポーネント内でモデルを表示し、以下のとおりである。
this.pagerParams = ko.observable({ currentPage: this.currentPage, totalItems: this.recordsTotal, itemsPerPage: this.length }).publishOn("pagerParams");
私はその後、公開この郵便ポストに加入している「ポケットベル」コンポーネントを持っています。
ko.postbox.subscribe("pagerParams", (params: PagerParams) => {
this.assignParamValues(params, false);
this.numberOfPages(Math.ceil(this.totalItems()/this.itemsPerPage()) || 1);
this.pageNumbers(this.getPageNumbers());
});
上記のpostboxサブスクリプションは、ビューモデルコンストラクタに登録されています。どのコンポーネントが最初にアクティブになるかによって、pagerParamsサブスクリプションが 'データテーブル'コンポーネントビューモデルで公開されることがありますが、ポケットベルはイベントが公開されたことを認識しません。
これは、 'pager'コンポーネントが 'data-table'コンポーネントの前でアクティブになっている必要があるためです。そうでなければ、 'pager'ビューモデルのサブスクリプションは、のコードが実行されている..多くの時間、これは、データテーブルがイベントを公開した後です。
私の質問は、pub-subイベントシステムがこのシナリオで期待どおりに動作するように、データテーブルコンポーネントの前でページャコンポーネントがアクティブになることをどうすればいいですか?