0

Angular 1.5 コンポーネントを使用して展開折りたたみのようなものを構築しようとしています。アイデアは、これらを 1 つまたは複数並べて配置したり、ネストしてツリーを作成したりできるということです。したがって、有効な html は次のようになります。

<expand-collapse title="This is my title">
    <p>This is my content</p>
</expand-collapse>

または

<expand-collapse title="Level 1 Title">
    <expand-collapse title="Level 2 Title">
        <p>This is my content</p>
    </expand-collapse>
</expand-collapse>

したがって、私の質問は、レベル 2 の展開-折りたたみが親の展開-折りたたみを認識できるように、 Angular 1.5 コンポーネント(ディレクティブではない)を使用してこれを行うことができるかどうかです。通常、このようなコンポーネントをネストすると、次のようになると思います。

component('expandCollapse', {
    ...
    require : {
        parentCtrl : "^expandCollapse"
    }
    ...

ただし、A) この場合、ネストは必須ではありません。B) parentCtrl は、現在の $ctrl への終わりのない再帰参照になります。

これはコンポーネントでできることですか? それとも、何らかの理由で明示的に禁止されていますか?

4

1 に答える 1

0

私は2つの方法しか見ません:

  • 優先レベルを必要とするレベルごとにディレクティブを定義します。これにより、不要なコードが生成される可能性があります。
  • 検索は角度関数を使用します: element.parent().controller('expand-collapse');. 通常、このアプローチは推奨されませんが、これよりもシンプルでクリーンなものはありません。
于 2016-11-04T15:43:39.877 に答える