如何使用核心angular2路由器停止在角度2应用程序中添加url

时间:2016-10-11 14:25:46

标签: angular angular2-routing

我的应用程序正在另一个应用程序中出现,我不能在url中附加任何内容,因为父应用程序是限制的。

有没有办法可以停止在网址中附加内容。我可以通过this.router.navigate(value, true);

在angular2 alpha 34 build中做同样的事情

我想在@angular:2.0.1和html中做同样的事情,而不是在我的typescript类中,通过定义一个方法并调用它(点击)。

2 个答案:

答案 0 :(得分:2)

听起来像是在寻找skipLocationChange

router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true });

另见https://angular.io/docs/ts/latest/api/router/index/Router-class.html

答案 1 :(得分:2)

skipLocationChange:true阻止angular2在URL中附加任何内容。正如@GünterZöchbauer建议的那样,您需要传递skipLocationChange:true,因为默认值为false。

完整代码将是:

import { Router }   from '@angular/router';

export class MovingInPages {

    constructor(private router: Router) {
    }

    moveToAnotherPage(value: string) {
        this.router.navigate([value], { skipLocationChange: true });
    }
}

html如下所示:

<button type="button"  (click)="moveToAnotherPage('another-page-route')" class="btn btn-primary">Another page</button>