我正在开发Angular2应用程序,并在以下位置进行测试:
Google Chrome Version 54.0.2840.71 m (64-bit).
我注意到的一件事是I"返回"在我的浏览器中,它是零星的,不可预测的。
即这是一个场景:
我使用脚本单击一个href,按如下方式生成它:
<a [routerLink]="['/param2/', myParamValue]">{{showMeTheVlaue}}</a>
我的网址现在更改为localhost:3000 / param1 / something / param2 / cows
我遇到的问题是后退按钮让我回到localhost:3000 / param1 / something / param2 / cows的缓存版本,而不是localhost:3000 / param1 / something。
我在onInit方法中添加了一些控制台状态,以确定问题所在。以下是一些示例代码:
export class MyComponent implements OnInit {
someResponse: MyResponse;
responseSub: Subscription;
paramsSub: Subscription;
constructor(private _service: MyService, private _route: ActivatedRoute) {
}
ngOnInit() {
console.log("### we are creating");
this.paramsSub = this._route.params.subscribe(
(param: any) => {
someParam = param['param2'];
this.someResponseSub = this._service.getData(someParam).subscribe(
data => this.someResponse = data,
error=> console.log(error)
);
}
);
}
ngOnDestroy() {
console.log("### we are deleting");
this.paramsSub.unsubscribe();
this.responseSub.unsubscribe();
}
}
当从param1 /到param1 / something / para2 / *多次,最终我将使我的后退按钮继续带我进行param / something / param2 / *结果的循环。然后我没有调用我的ngOnDestory。
知道我做错了什么?