如何在递归指令中访问父级
How to access parents in recursive directive?
我正在使用https://github.com/dotJEM/angular-tree作为递归指令循环通过这种模型:
$scope.model = [
{
label: 'parent1',
children: [{
label: 'child'
}]
},
{
label: 'parent2',
children: [{
label: 'child',
children: [{
label: 'innerChild'
}]
}]
},
{
label: 'parent3'
}
];
在模板中,代码如下:
<div data-dx-start-with="model">
<div data-ng-repeat="node in $dxPrior">
<a class="list-group-item">
<span class="icon" data-ng-click="toggle(node)"><i class=" icon ion-android-arrow-dropdown"></i> </span>
<span>{{ node.label}} ({{node.children.length}})</span>
</a>
<ul data-ng-show="node.expanded" data-dx-connect="node.children"></ul>
</div>
</div>
现在,我该如何访问每位家长?我希望能够构建树视图的面包屑。
例如:parent2>child>innerChild>。。。
如果我没有弄错的话,我可以通过使用$parent来获取每个节点的父节点。。。但我该如何让每位家长都参与进来呢?
我创建了一个plnkr来说明:http://plnkr.co/edit/DOc9k4jT9iysJLFvvg3u?p=preview
只需对其进行编程。生成一个函数,该函数将遍历父级,直到到达根,并在每个步骤中构造父级数组:
$scope.getParentsBreadcrumb = function (thisScope) {
var parents = [];
while (thisScope && thisScope.node) {
parents.unshift (thisScope.node.label);
thisScope = thisScope.$parent.$parent;
}
return parents.join(' > ')
}
然后在你想要打印面包屑的模板中调用它:
{{getParentsBreadcrumbs (this)}}
相关文章:
- 无法访问指令中的AngularJS属性
- 在 ng-if 编译后访问指令中的 DOM 元素
- 测试时如何访问指令中的attr-Angularjs
- 从另一个指令访问指令的作用域变量
- 如何在父控制器中访问指令的对象
- 如何从父指令/控制器访问指令范围
- 如何从另一个指令访问指令的 DOM 元素
- AngularJS :如何从相同的指令控制器访问指令范围
- 是否可以从指令定义内部访问指令的实例
- angularjs:如何访问指令(文本)值
- 访问指令's将范围与“;这个“;使用controllerAs语法
- 访问指令中的当前状态名称
- 从控制器外部访问指令作用域
- 访问指令中的scope属性,其中该属性是通过Ajax设置的
- 从单独的控制器访问指令作用域
- 为什么可以't i访问指令'茉莉花试验的范围
- 从parent的父控制器访问指令变量
- 在包含的ng-repeat中访问指令的作用域
- 在Angular链接函数和访问指令参数中使用$compile
- Angularjs - 如何在控制器中访问指令属性