如果我不必像 ngAfterContentChecked() 和 ngAfterViewChecked() 调用那样多次调用语句怎么办
What if I don't have to call a statement as many times as ngAfterContentChecked() and ngAfterViewChecked() call
`ngAfterContentChecked() {
console.log("Content checked");
}
ngAfterViewChecked(){
console.log("View checked");
}`
我正在 Angular 做一个项目。我需要在一个页面中调用一个语句块两次 -
1. 当我单击同一组件中的选项卡时。
2. 当我点击页脚(一个不同的子组件)中的 link 时,我可以在同一页面上看到这些按钮和 link。
用于在单击按钮和页脚中的 link 时调用这些语句,其中语句仅在一个父项中定义。要检查来自另一个组件(页脚)的任何更新(单击),我需要使用 ngAfterContentChecked() 或 ngAfterViewChecked() ,这又 运行 多次(大约在组件初始化后的每一秒),这对我需要 运行 它仅在单击页脚上的 link 和单击父项中的按钮时。
我只需要 运行 它 4 次(点击父选项卡 2 次,点击页脚中的 links 两次)但这两个生命周期在控制台中给我结果超过 100 次,这不是同时使用这两个生命周期的正确方法。
请告诉我是否有任何其他可能的方法,这将对我有很大帮助,谢谢。
您可以简单地在 (click)
事件中绑定一个函数。
这样试试:
Parent
.html
<button (click)="onClick()">Tab1</button>
<button (click)="onClick()">Tab2</button>
<hr>
<app-child (LinkClick)="onClick()"></app-child>
.ts
onClick(){
console.log("Clicked");
}
Child(页脚):
.html
<a (click)="linkClick()" href="#">Link 1</a>
.ts
@Output() LinkClick = new EventEmitter();
linkClick() {
this.LinkClick.emit();
}
`ngAfterContentChecked() { console.log("Content checked"); }
ngAfterViewChecked(){ console.log("View checked"); }`
我正在 Angular 做一个项目。我需要在一个页面中调用一个语句块两次 - 1. 当我单击同一组件中的选项卡时。 2. 当我点击页脚(一个不同的子组件)中的 link 时,我可以在同一页面上看到这些按钮和 link。
用于在单击按钮和页脚中的 link 时调用这些语句,其中语句仅在一个父项中定义。要检查来自另一个组件(页脚)的任何更新(单击),我需要使用 ngAfterContentChecked() 或 ngAfterViewChecked() ,这又 运行 多次(大约在组件初始化后的每一秒),这对我需要 运行 它仅在单击页脚上的 link 和单击父项中的按钮时。
我只需要 运行 它 4 次(点击父选项卡 2 次,点击页脚中的 links 两次)但这两个生命周期在控制台中给我结果超过 100 次,这不是同时使用这两个生命周期的正确方法。
请告诉我是否有任何其他可能的方法,这将对我有很大帮助,谢谢。
您可以简单地在 (click)
事件中绑定一个函数。
这样试试:
Parent
.html
<button (click)="onClick()">Tab1</button>
<button (click)="onClick()">Tab2</button>
<hr>
<app-child (LinkClick)="onClick()"></app-child>
.ts
onClick(){
console.log("Clicked");
}
Child(页脚):
.html
<a (click)="linkClick()" href="#">Link 1</a>
.ts
@Output() LinkClick = new EventEmitter();
linkClick() {
this.LinkClick.emit();
}