我正在寻找一种标记嵌套指令深度的方法。 假设我们有一个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;对元素?
答案 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);
}
});