如何使用角度选择器2次,但组件初始化一次?



HTML

<exchange></exchange>
<exchange></exchange>

TS

@Component({
selector: 'exchange',
templateUrl: 'exchange.component.html',
})
export class ExchangeComponent implements OnInit {
ngOnInit() {
interval(10000).subscribe(x => {
console.log(x)});
}
}

我调用该组件两次,但我不希望间隔每 10 秒运行两次。 我希望它只工作一次

也许像这样简单:

在服务文件中存储一个变量,以根据其值执行某些操作。

shouldSubscribe: boolean = false;

在您的组件中:

ngOnInit() {
if(!this.someService.shouldSubscribe) {
interval(10000).subscribe(x => {console.log(x)});
} else {
this.someService.shouldSubscribe = true;
}     
}

另一种方法是将属性传递给组件的一个实例,并将其用作检查:

<exchange [shouldSubscribe]="true"></exchange>
<exchange></exchange>

在组件中:

@Input() shouldSubscribe: boolean;

在生命周期钩子中:

if(this.shouldSubscribe) {
// do want you want
} 

在你的问题中,你问过如何防止组件再次初始化你不能这样做(如果你跳过编写ngOnInit默认情况下它会执行,因为它是一个生命周期钩子(。

相关内容

最新更新