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

#Angular2 How i can count numbers of custom attribute 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:我不能通过 class 名称搜索来做到这一点(因为我在指令中添加了 classes)而且我不能通过搜索来做到这一点属性(指令名称)因为 angular 更改。

编辑:将错误的语法 customAttrDirective="'value'" 替换为 [customAttrDirective]="'value'"

非常感谢。

假设您的自定义属性指令的 class 名称是 CustomAttrDirective,在您使用自定义指令的组件中添加:

@ViewChildren(CustomAttrDirective) dirs: QueryList<CustomAttrDirective>

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