带有指令的 viewChildren
viewChildren with directive
我想添加一个指令并使用 viewChildren 来识别它们:
// directive.ts
@Directive({
selector: '[myOwnDirective]'
})
export class MyOwnDirective {
constructor() {
console.log("hi") //never printed
}
}
//component html:
<div myOwnDirective>content 1</div>
<div>content 2</div>
<div>content 3</div>
<div myOwnDirective>content 4</div>
<button (click)="printElements()"></button>
//component.ts:
export class MyOwnComponent implements AfterViewInit{
@ViewChildren(MyOwnDirective) children: QueryList<MyOwnDirective>;
constructor() {
}
ngAfterViewInit() {
}
printElements(){
console.log(this.children) // Empty
}
我想要的是使用 "myOwnDirective" 获取所有元素,但我找不到方法。
我哪里错了?
您需要在 app.module
中注册您的指令才能在您的应用程序中使用。
我想添加一个指令并使用 viewChildren 来识别它们:
// directive.ts
@Directive({
selector: '[myOwnDirective]'
})
export class MyOwnDirective {
constructor() {
console.log("hi") //never printed
}
}
//component html:
<div myOwnDirective>content 1</div>
<div>content 2</div>
<div>content 3</div>
<div myOwnDirective>content 4</div>
<button (click)="printElements()"></button>
//component.ts:
export class MyOwnComponent implements AfterViewInit{
@ViewChildren(MyOwnDirective) children: QueryList<MyOwnDirective>;
constructor() {
}
ngAfterViewInit() {
}
printElements(){
console.log(this.children) // Empty
}
我想要的是使用 "myOwnDirective" 获取所有元素,但我找不到方法。
我哪里错了?
您需要在 app.module
中注册您的指令才能在您的应用程序中使用。