私は単一のポップアップ要素の指示を持っています。クリックされた何百もの要素のどれに応じて、表示されるときにポップアップに別のデータを渡す必要があります。サービスを使用してデータを格納/フェッチすることは、サイドバンドのハッキングのように思えます。トップレベルのコントローラーにデータを格納し、ポップアップコントローラーが継承できるようにするのは、カプセル化が不十分なようです。私はディレクティブにスコープを分離し、ポップアップコントローラにそれを継承させたいと思います。これはうまくいかないようです。何かご意見は? $ブロードキャストは私の唯一のオプションですか?ディレクティブのトランスコードされたコントローラにデータを動的に渡す
1
A
答えて
0
あなたはAngularJS 1.xで作業していると仮定します。私はTransclusionがあなたが探しているものだと思っています。 Transclusionは、ディレクティブのコンテンツ領域内の親コントローラにバインドされたマークアップを含める方法を提供します。
から取られたPlunkerをチェックしてください。
.directive('pane', function() {
return {
restrict: 'E',
transclude: {
'title': '?paneTitle',
'body': 'paneBody',
'footer': '?paneFooter'
},
template: '<div style="border: 1px solid black;">' +
'<div class="title" ng-transclude="title">Fallback Title</div>' +
'<div **ng-transclude="body"**></div>' +
'<div class="footer" **ng-transclude="footer"**>Fallback Footer</div>' +
'</div>'
};
<div ng-controller="ExampleController">
<input ng-model="title" aria-label="title"> <br/>
<textarea ng-model="text" aria-label="text"></textarea> <br/>
<pane>
<pane-title><a ng-href="{{link}}">{{title}}</a></pane-title>
<pane-body><p>{{text}}</p></pane-body>
</pane>
</div>
ペーンが指令です。 pane-titleおよびpane-bodyに含まれるコンテンツは、親コントローラに対してコンパイルされていますが、ディレクティブマークアップのng-transclude部分に表示されます。
あなたはサービスや$ブロードキャストを必要とせずにカスタムデータをポップアップに取り込むことができるはずです。
関連する問題
- 1. コントローラからディレクティブanglejsにデータを渡す
- 2. メソッドをディレクティブに渡してネストされたディレクティブにデータを渡す方法
- 3. コントローラに渡すMVC動的データ
- 4. AngularJS:親コントローラからのトランスコードされたディレクティブ内に配置されたフォームのアクセスformController
- 5. 変数をディレクティブのコントローラに渡す
- 6. jsonデータをコントローラからディレクティブに渡して表示に表示
- 7. 動的に作成された入力のデータがコントローラに渡されません
- 8. 動的に私は動的にディレクティブを作成しましたし、私はこのディレクティブにデータを渡されたが、このディレクティブはレンダリングされていないと私はリンク機能に渡されたデータにアクセスすることができ、そしてここに私のスニペットコードディレクティブ
- 9. データがコントローラに渡されない
- 10. 更新されたデータをグリッドからコントローラに渡す方法
- 11. 動的に追加されたcssクラスに基づくAngular2ディレクティブ
- 12. HTMLコンテンツをAngularディレクティブに属性として動的に渡す
- 13. 組み込みディレクティブがフォームデータを親コントローラに渡さない
- 14. AngularJS:コントローラ内で呼び出されるディレクティブの分離されたスコープに関数を渡しますか?
- 15. コンポーネントにデータを動的に渡す
- 16. コントローラにバインドされたレイアウトにhtmlを動的に追加
- 17. 角度d3ディレクティブに渡されたデータが時刻に到着しない
- 18. 動的に生成されたコードに "using static"ディレクティブを使用するには?
- 19. データに基づいて動的にディレクティブを選択します。
- 20. 動的に生成されたデータ
- 21. 要素に動的に生成されたアンギュラ・ディレクティブ・テキストをバインドする
- 22. 動的データをブートストラップモーダル角4に渡す
- 23. レンダリングされた文字列をAngularディレクティブに渡す
- 24. 動的に作成されたオブジェクトを関数に渡す
- 25. 動的に作成されたフォームフィールドをPHPに渡す
- 26. コントローラデータがディレクティブに渡されません
- 27. Angularjs:データを含むビューで動的にディレクティブをロードする
- 28. 動的に定義されたディレクティブがコンパイルされていません
- 29. ディレクティブからコントローラに変数を渡す方法
- 30. コントローラ変数をディレクティブからng-showに渡す - 角型JS
私は、属性からコントローラのスコープにデータを渡そうとしていません。私は、ディレクティブ関数自体からコントローラのスコープにデータを渡そうとしています。ディレクティブのクロージャーにローカルなオブジェクトをカルチャリストに追加することはできますか? –