私はメニューに項目を保持するサービスを備えたサイドバーメニューコンポーネントを持っています。複数のソースから、適切と思われるメニューが変更されます。 Typescriptでオブジェクトのコールバックを定義する最善の方法は?
は現在、各項目はSidebarItemを実装します 私は特定のイベントをキャッチすることができますしかしexport interface SidebarItem {
name: string,
link: Route|string,
icon ?: string
}
(、ホバーをクリック)し、サイドバーの項目自体のコールバックを定義するためのオプションを持っていると思います。
これを達成する最善の方法を知りたいと思います。インターフェイス上に2つのプロパティを定義して、それを実装する方法を全員に決定させるか、あるいはオプションがあるかどうかを確認する必要があります。サイドバーの各項目に新しいクラスが必要なわけではないので、サイドバーの項目をクラスにすることはできません。
もし私が役立つなら、私はaureliaイベントアグリゲーターを使ってイベントをディスパッチすることもできます。
PS:これが主観的だと感じる場合は、代わりに「方法」としてタイトルを読んでください。私の提案した方法は野生の推測であり、正しいとは思わない。
あなたが求めていることは明確ではありません。このインターフェイスにコールバック関数への参照を含める方法を尋ねていますか? –
実装する必要はない(=>インタフェースに配置しない)コンベンショナルメソッドを提供することができますが、その機能を実装する必要があります。アウレリア成分のライフサイクル法(添付、結合など)に匹敵する。それらは必要ではありませんが、コンポーネントがアタッチされる前に何かしたい場合、メソッドを実装する必要があります。 –
@NitzanTomer申し訳ありませんが、これが不明な場合。 Angular 2コンポーネントを例にしてみましょう。コンポーネントクラスを作成することはできますが、コンポーネントが破棄されたときには何かを行う必要があります。 Angular 2ウェイでは、コンポーネントに_OnDestroy_インターフェイスを実装し、そのクラスに対してngOnDestroy()メソッドを実装します。 私の問題は似ています。ユーザーがメニューの[アカウントのキャンセル]ボタンをクリックすると、確認可能なダイアログが表示されます。 1/2 – marekpw