ユーザーがセクションごとに矢印キーでページをナビゲートできるようにするディレクティブを作成しようとしています。しかし、私はまた、それらのセクションを dom の周りに散らばらせ、何かが追加されたり削除されたりしても壊れないようにしたいと考えています。これを行う方法はいくつか考えられますが、どれも満足のいくものではありません。
他のディレクティブが自分自身を登録できる (そして $destroy で登録解除できる) コントローラーを使用してディレクティブを作成します。でも、途中で何かを追加すると、これは故障します。また、この方法で書いてみましたが、必要以上のコードのようです。
ユーザーが矢印キーを押すたびに、空の配列を作成し、そのリストに自分自身を登録するためのディレクティブのコールバックを使用してイベントを $broadcast します。次に、そのリストがいっぱいになったら、そのリストを進めたり戻したりします。それらは (すべき?) DOM 上にある順序で戻ってきますが、この方法はクレイジーでハックのように見えるので、よくわかりません。
css で「タブ可能」であることをマークし、これを jquery で次のような簡単な方法で記述します
var all = $('.tabbable')
。しかし、それは「角度のある」方法ではないため、実際にはそのようにしたくありません。純粋さからではありませんが、私はこれをウィジェットのより大きなライブラリの一部として構築しており、この機能にアクセスできるようにしたいからです。
それで、奇妙なハックに頼ったり、ロジックをあちこちに広げたりせずに、特定のタイプのすべてのディレクティブのスコープを取得する方法はありますか?