5

私はAngularJSにかなり慣れておらず、Angularの方法を考えようとしています。
現在、と呼ばれるAngularサービスに登録するさまざまな機能を備えたアプリに取り組んでいますFeatureRegistry。そこから、それらが取得され、からサイドバーに挿入されFeatureSelectionControllerます。機能をクリックするstartFeature()と、適切な機能の機能が呼び出され、その後、機能がメインビューに追加されます(ただし、このDOM操作はどこで発生する必要がありますか?)。

だから私の質問があります。DOMにディレクティブを追加する最良の方法(角度のある方法)は何ですか?これを行うために必ずしもjQueryを使用する必要はありません(また、$ compile、$ watchなどの使用を制限したいです)。

機能は互いに独立したアクションを実行するため、mainViewのディレクティブは分離されたスコープを持つことができます(共有するデータはAngularサービスにカプセル化されます)。

これが画像です

ディレクティブを挿入する角度のある方法は何でしょうか?

DOMの操作はディレクティブでのみ行われるべきだといつも読んでいますが、ドキュメントやその他の質問でも、それを行う方法が見つかりませんでした。

4

1 に答える 1

3

ここに簡単なデモがあります: http://plnkr.co/edit/eZTtRVTPb7k9kgS8woKh?p=preview

ここでディレクティブが必要になるとは限りません...リスト内の機能、最大化された機能、最小化された機能の間に多くの共通機能がある場合を除きます。

3 つのリストに共通する機能が本当にたくさんある場合は、次のようにすることができます。

<feature ng-repeat="f in registry.all()" model="f" state="list">
<feature ng-repeat="f in registry.maximized()" model="f" state="open">
<feature ng-repeat="f in registry.minimized()" model="f" state="minimized">

次に、ディレクティブ テンプレートで、共通の機能を使用してから、または を使用して状態に応じて何を使用するかを決定できng-switchますng-show

実際のディレクティブを書くのに助けが必要ですか?

于 2013-03-19T16:09:36.750 に答える