Angular 1.5递归嵌套组件

时间:2016-11-04 15:37:41

标签: javascript angularjs angular-components

我正在寻找使用Angular 1.5 Components构建类似扩展崩溃的东西。这个想法是你可以连续一个或多个,或者你可以嵌套它们来创建一个树。因此,有效的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>

所以,我的问题是我是否可以用 Angular 1.5组件(非指令)以2级扩展崩溃可以意识到它的父扩展崩溃的方式做到这一点。通常当你嵌套这样的组件时,我认为你会有类似的东西:

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

但是A)在这种情况下不需要嵌套,并且B)parentCtrl最终是对当前$ ctrl的永无止境的递归引用。

这可以通过组件完成吗?还是因某种原因被明确禁止?

1 个答案:

答案 0 :(得分:0)

我只看到两种方式:

  • 为需要先前级别的每个级别定义一个指令,这可能会导致不必要的代码。
  • 搜索使用角度函数:element.parent().controller('expand-collapse');。通常不推荐这种方法,但我没有看到比这更简单/更清洁的方法。