0

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/

私の質問は次のとおりです。

  1. これは実際、2つの要素ベースのディレクティブを通信させる唯一の方法ですか?
  2. コントローラ間でapiインスタンスを共有するために$(document).data( "fc-bus.api"、api)を使用する必要があったため、スコープが間違っていると感じています。誰かがコントローラー間でAPIを共有するより良い方法を提案できますか

それは機能し、それは問題ないと思いますが、グローバルスコープのAPIでは実際にはあまり「角度がない」とは感じません

私はあなたのすべての答えとコメントを楽しみにしています

4

1 に答える 1

1

3 番目のディレクティブの代わりに、データを共有し、$watch各ディレクティブ内のサービスのデータを変更するためのサービスを作成します。

于 2014-02-19T18:09:02.633 に答える