#Angular2如何计算自定义属性指令的数量?

时间:2017-07-21 09:00:07

标签: javascript angular angular-directive angular-services custom-directive

我制作了一个自定义attr directive,我将在兄弟姐妹元素中使用它,如:

<div>
   <div [customAttrDirective]="'value'">1</div>
   <div [customAttrDirective]="'value'">2</div>
   <div [customAttrDirective]="'value'">3</div>
   <div [customAttrDirective]="'value'">4</div>
</div>   

我做了service来控制我的所有指令。在这里,我想知道我的指令customAttrDirective的数量。

PS:我不能通过按类名搜索来做到这一点(因为我在指令中添加了类)并且我无法通过按属性(指令名称)搜索来实现,因为角度更改。

修改:将错误的sintax customAttrDirective="'value'"替换为[customAttrDirective]="'value'"

非常感谢。

1 个答案:

答案 0 :(得分:3)

假设您的自定义属性指令的类名是CustomAttrDirective,在您使用自定义指令的组件中,添加以下内容:

@ViewChildren(CustomAttrDirective) dirs: QueryList<CustomAttrDirective>

然后在生命周期ngAfterViewInit中,获取变量dirs的长度。