AngularJSでは、$ブロードキャスト、$ emit、$のイベントブロードキャストメカニズムを使用して、異なるスコープ間で通信できます。
導入:
$ブロードキャストの目的は、親の範囲から子供の範囲までイベントを伝播することです。フォーマットは次のとおりです。$ broadcast(eventname、args)
$ emitの目的は、ルートスコープまでそれ自体を含め、子の範囲から親の範囲にイベントを伝播することです。フォーマットは次のとおりです。$ emit(eventname、args)
$ onは、子供または親の範囲から伝播されたイベント、および範囲内の対応するデータを監視するために使用されます。フォーマットは次のとおりです。$ on(event、data)
上記の説明では、eventNameは監視する必要があるイベントの名前であり、$ onメソッドのパラメーターイベントはイベントの関連オブジェクトであり、データはイベントによって伝播されるデータです。
$ onメソッドのイベントパラメーターには、次のプロパティとメソッドがあります
イベント属性/メソッド機能説明
| イベントプロパティ/メソッド | 機能的な説明 |
|---|---|
| event.targetScope | 伝播イベントの範囲を取得します |
| event.currentscope | 受信したイベントの範囲を取得します |
| event.name | スプレッドイベントの名前 |
| event.stoppropagation() | イベントがバブル伝播からの防止、$ emitイベントでのみ有効 |
| event.preventdefault() | 伝播イベントが発生しないようにします |
| event.defaultPrevented | PreventDefaultイベントが呼び出された場合、trueを返します |
コード:
<!doctype html> <html ng-app = "myapp"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> </title> <meta charset = "utf-8"/> Angular.module( "myApp"、[]); // controller self myapp.controller( "self"、function($ scope、$ windo){// buttonの伝播イベント$ scope.toparent = function(){//上向きに伝播するイベントを登録します。 $ scope.tochild = function {// eventname: 'from self'、$ scope。 $ window.alert( "current node" + event.currentscope.name + "" + data.divname + ":" + event.name + "、その関数は" // Controller Parent MyApp.Controller( "parent"、function($ scope、$ window){$ scope.name = "parent"; // $ onはイベントに使用されます$ scope。関数は " + data.description);}); $ scope。$ on(" fromchild "、function(event、data){$ window.alert(" current node " + event.currentscope.name +"、 " + data.divname +": " + event.name +"、its " + datascripion);};};};}; //コントローラーのMyApp.Controller( "Child"、function($ scope、$ window){$ scope.name = "child"; // $ onは、親scope $ scopeからイベントを傍受するために使用されます。 event.name +」、 " + datascription); </script> </head> <body> <form name = "test"> <div ng-controller = "parent">これは親div <div ng-controller = "self">子ChildDiv "/> <div ng-controller =" child ">ここにChild Childdiv <input Type =" ng-click = "top()" bule = "upload event"/> </div> </div> <div ng-controller = "borther">ここにあります。コード
効果:
その他のプロパティ:上記のイベントはAngularjsで放送されます - $ broadcast、$ emit、$ onの包括的な分析は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。