Angular2

时间:2016-11-09 14:15:20

标签: angular

我正在开发Angular2应用程序,并在以下位置进行测试:

Google Chrome Version 54.0.2840.71 m (64-bit).

我注意到的一件事是I"返回"在我的浏览器中,它是零星的,不可预测的。

即这是一个场景:

  • 说我有一个localhost的主页:3000 / param1 / something
  • 我使用脚本单击一个href,按如下方式生成它:

    <a [routerLink]="['/param2/', myParamValue]">{{showMeTheVlaue}}</a>
    
  • 我的网址现在更改为localhost:3000 / param1 / something / param2 / cows

  • 我在浏览器中单击后退,并且网址不会更改为localhost:3000 / param1 / something

我遇到的问题是后退按钮让我回到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。

知道我做错了什么?

0 个答案:

没有答案