我如何通过更新内容元素上的选择器来更新 ng-content?
我在 app.component.html 中有代码:
<my-slider>
<img src="../../assets/logo1.png" />
<img src="../../assets/logo2.png" />
</my-slider>
这是 my-slider.component.ts 的代码:
@Component({
selector: 'my-slider',
template: '<ng-content select=".render" ></ng-content>
<button (click)="render()"> Show</button>',
styleUrls: ['./slider.component.css']
})
export class SliderComponent {
@ContentChildren(ImgComponent) img: QueryList<ImgComponent>;
constructor() { }
render() {
this.img.last.show();
}
}
和 ImgComponent.ts
@Component({
selector: 'img',
template: '',
})
export class ImgComponent {
render: boolean = false;
constructor(
private elRef: ElementRef,
private renderer: Renderer2
) { }
show() {
this.render = true;
this.renderer.addClass(this.elRef.nativeElement, 'render');
}
hide() {
this.render = false;
this.renderer.removeClass(this.elRef.nativeElement, 'render');
}
}
当我单击按钮时,会向元素添加一个类,但 ng-content 永远不会更新。我能以某种方式使它工作吗?或者我如何过滤 ng-content 中的组件?