这个问题已经在这里有一个答案:
- Angular2路由器2.0.0不重装组件时加载不同的参数相同的网址? 3个回答
我有一个大Angular2应用。 我一个路线我已经是/rewards
这是我们提供的所有奖励名单。 我有另一条路线是/reward/{rewardName}
这是一种单一奖励详细信息页面。 我遇到的问题是,当我再次打开和第四之间/rewards
航线和不同/reward/{rewardName}
路线,所有的/reward/{rewardName}
,我打的页面继续运行。 我知道这是因为我有一个setInterval
在ngOnInit
我/reward/{rewardName}
组件。 所以,如果我打了/reward/{rewardName}
路线5倍,这将注销的5个实例quantity
,如在下面的代码。 为什么这个组件从未停止运行? (继续我去哪个页面在网站的休息,无论运行)
码:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { RewardDetailService } from './reward-detail.service';
import { AuthService } from '../../auth/auth.service';
@Component({
selector: 'reward-detail-component',
styleUrls: [ './reward-detail.component.scss' ],
templateUrl: './reward-detail.component.html'
})
export class RewardDetailComponent implements OnInit {
...
quantity = 1;
constructor(private rewardsDetailService: RewardDetailService, private activatedRoute: ActivatedRoute, private authService: AuthService, private router: Router) { ... }
ngOnInit() {
setInterval(() => {
console.log('QUANTITY: ', this.quantity);
}, 1000)
}
...
}