私はAngular2ルーターを使ってマスターディテール画面を実装しています。 私はそのテンプレートにリソースのリスト(ul/liフォーマット済み)を定義するコンポーネントを持っています:マスターパート。リスト内の各リソースは、「routerLink」バインディングによってクリック可能です。ルーター(ルーターコンセント)をAngular2で実装した 'Master-detail'を実装
同じテンプレートでは、私はルータのアウトレットを定義しました。アイデアは:リスト(ul/li)のリソースの1つをクリックすると、Angular2はルーターのアウトレットのポイントに編集可能なフォームを表示またはレンダリングする必要があります。私はデータを変更し、保存ボタンを押すことができます。 (詳細部分)
このリソースが更新(保存)されると、リソースのリストにも表示されるデータが変更されている可能性があるため、リソースのリスト(ul/li)も更新します。リソース表示名として)。
Angular2はディテールコンポーネントを管理しているので、私はhtmlテンプレートでコンポーネントを宣言していません。しかし、ディテール・コンポーネントを宣言していないため、イベント(変更イベントなど)に反応するフックはありません。つまり、フォームが正常に変更されたら、私は「変更イベント」を発行します。このようなイベントに基づいて、マスターはリソースのリスト(ul/li)をリフレッシュすることによって自身を更新できるように、 'Master part'にハンドラを実装できます。
ポイント:アプリにAngular2ルータ機能が導入されているため、マスターコンポーネントとディテールコンポーネントの関係が失われました。
質問:このパターンを解決する方法はありますか?
コードを追加してください。 –
こんにちはMadhu、私は私が上でより簡潔に説明した問題を言い換えるでしょう;-) – user2120188
こんにちはMadhu、私は上記の問題を私はより簡潔に述べます;-) HIsそれはルータのアウトレットコンポーネントが変更したことを(親)コンポーネントに通知する|通常、あなたはイベントを出し、親はそれに反応することができます。この場合、ルータ - アウトレットは、レンダリングが必要なコンポーネント(ルート設定で宣言されている)の「プレースホルダ」です。コンポーネント自体(htmlテンプレート内)が存在しないため、親または他のユーザーが反応できるイベントバインディングを宣言することはできません。 – user2120188