我有一个控制器实现OnInit 这里的问题是每当我改变路线并回到相同的组件时,每次都会调用ngOnInit。我做错了什么我无法理解。任何人请帮助我。
@Component({
selector:'test-list',
templateUrl:'./testlist.component.html',
styles:[`.testname{
text-transform : capitalize;
}`]
})
export class TestListComponent implements OnInit{
testList:Array<Test>;
constructor(private testService:TestService,private router:Router){}
ngOnInit(){
this.testService.getTest()
.subscribe(
data=>this.testList = <Array<Test>>data,
error=>alert(error)
);
console.log("ngInit")
}
editTest = (id)=>{
this.router.navigate(['createtest',id]);
}
}
答案 0 :(得分:0)
{{1}}。它不需要被调用。这是一个生命周期钩子,用于做初始的东西。您可以了解有关角度生命周期钩子的更多信息 here
答案 1 :(得分:0)
如果在构造函数中您订阅了活动路由,则每次路由器导航到该页面时都会调用ngInit。
constructor(
private route: ActivatedRoute,
private router: Router
) {
this.route.queryParams.subscribe(async (params) => {
if (this.router.getCurrentNavigation().extras.state) {
// TODO save the params
}
});
}
ngOnInit(){
console.log('ngOnInit called');
}