AngularJS嵌套指令的深度

时间:2015-03-31 23:26:39

标签: angularjs angularjs-directive

我正在寻找一种标记嵌套指令深度的方法。 假设我们有一个item-container和一个ch-item,我将它们嵌套了几次 像这样:

  <ch-item-container>
    <ch-item>
      <ch-item></ch-item>  
      <ch-item-container>
        <ch-item>
          End of tree
        </ch-item>
      </ch-item-container>
    </ch-item>
  </ch-item-container>

有没有办法标记深度而不会像这样贴上它?

<ch-item depth="0"></ch-item>  

我用这个例子准备了一个plunker:http://plnkr.co/edit/zC0XCeWJttroAX99Qc6i?p=preview

是否可以传递变量&#34; down&#34;对元素?

1 个答案:

答案 0 :(得分:1)

一种解决方案是计算每个范围的$parent次迭代次数:这会为您提供相对于$rootScope的范围深度。

这是一个实现:http://plnkr.co/edit/jDfqB1KnFa7oDHMfVhri?p=preview

共享服务:

chItemModule.service('depth', function () {
  return function depth(scope, d) {
    d = d || 0;
    if (!scope.$parent) {
      return d;
    }
    return depth(scope.$parent, d + 1);
  }
});