私はAngular 4と素材を使用してWebアプリケーションを作成しています。私はマテリアル "Sidenav"コンポーネントを使用しています。 sidenavが開いているか閉じている場合は、イベントをトリガーしたいと思います。ボタンのclickプロパティに関数を追加すると、イベントがトリガされます。しかし、エスケープを押すか、navの外のどこかをクリックしてsidenavを閉じると、ボタンのclickイベントは論理的には機能しません。角材2 SideNav onOpen閉じる
サイドデナにはonOpen
とonClose
という2つのプロパティがありますが、使い方が分かりません。それとも、彼らは私がやりたいことを達成するための適切なプロパティですか?よりよく理解するためにここで
plunker:sidenavは、ボタンを押していないことで閉じられている場合http://embed.plnkr.co/ZPmhbFm1hbOUKYp1rV6J/
結果が「世界」と警戒しなければなりません。
:
ここで更新plunkへのリンクである、これは私が括弧でそれらを置くことによって、任意のコンポーネントのmethondを呼び出すことができることを意味します。または、ドキュメントには、このコンポーネントが(オープン)および(クローズ)が存在すると書かれていますか? – Leonzen
ドキュメントを見ると '@Output( 'open')onOpen'の罰金が科せられ、 'open'のパラメータはイベントを指定します。 component.tsで同じことをしたい場合は、次のようにonOpenイベントを購読する必要があります: 'this.sidenav.onOpen.subscribe(()=> this.menufunction( 'Hello'));'私は個人的に私は答えの中で指定したアプローチを単純なものより好んでおり、 '@ViewChild( 'sidenav')'の取得には関係しません。ここにはドキュメントへのリンクがあります:https://material.angular.io/components/sidenav/api – Faisal
もう1つの質問(私は非常に角度がありません)ですので、 '@Output( 'open-start ')onOpenStart'プロパティ。つまり、このthis.sidenav.onOpenStart.subscribe(()=> this.menufunction( 'Hello')); 'のように私はそれを購読することができます。しかし、私は(open-start)= "menufunction( 'Hello');"と書くこともできますか? – Leonzen