2つの要素ベースのディレクティブが必要です。
どちらにも独自のUIがあるため、restrictを使用した理由:「E」
1つまたは複数のディレクティブから別のディレクティブにデータを渡す方法が必要です
データを送信する2つのディレクティブは、2つの異なるコントローラー(1つはページヘッドにあり、もう1つはページ本文にあります)にあるため、
scope: {
onNotify : "&"
}
スコープが違うので面倒になります。
私が思いつくことができる最高のものは、「メッセージバス」パターンです。「API」を公開する3番目の(属性ベースの)ディレクティブを導入した場合
api = {
addListener : function(event, fn),
publish : function(event, data)
}
ここのjsfiddle:http: //jsfiddle.net/concept/dELCv/
私の質問は次のとおりです。
- これは実際、2つの要素ベースのディレクティブを通信させる唯一の方法ですか?
- コントローラ間でapiインスタンスを共有するために$(document).data( "fc-bus.api"、api)を使用する必要があったため、スコープが間違っていると感じています。誰かがコントローラー間でAPIを共有するより良い方法を提案できますか
それは機能し、それは問題ないと思いますが、グローバルスコープのAPIでは実際にはあまり「角度がない」とは感じません
私はあなたのすべての答えとコメントを楽しみにしています