可以使用 ActivatedRoute 中的订阅来执行 ngOninit。例如,当路由参数发生改变时,可以在订阅方法中执行 ngOninit。
示例代码:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
@Component({
selector: 'app-product-detail',
templateUrl: './product-detail.component.html',
styleUrls: ['./product-detail.component.css']
})
export class ProductDetailComponent implements OnInit {
productId: number;
constructor(
private route: ActivatedRoute,
private router: Router
) { }
ngOnInit() {
this.route.params.subscribe(params => {
this.productId = +params['id'];
this.ngOninit();
});
}
// 之前在 ngOnInit 中执行的逻辑
ngOninit() {
console.log('初始化逻辑已执行');
}
navigateToProductList() {
this.router.navigate(['/products']);
}
}