如何从组件更改片段

时间:2016-12-01 23:42:49

标签: angular angular2-routing

我想以编程方式从组件中更改网址的片段,但我没有这样做。

<a #linkComponent routerLink='home' fragment='part'>link</a>

@ViewChild('linkComponent') linkComponent;

this.linkComponent.????

或许使用Router

可能有不同的方法

2 个答案:

答案 0 :(得分:5)

修改linkComponent只会更改元素,我在更改片段URL之后。贝娄我有工作解决方案。

@Component({
 ...
})
export class Cmp {

constructor( private router: Router ) {}
}

changeFragment() {
  this.router.navigate( [ '/home' ], { fragment: '#part' } )
}

}

答案 1 :(得分:0)

你可能需要这样的东西:

@Component({
    ...
})
export class Cmp {

    @ViewChild('linkComponent') linkComponent: ElementRef;

    constructor(private _renderer: Renderer) {}

    // only after view initialization linkComponent would be available!
    ngAfterViewInit() {

        this._renderer.setElementAttribute(this.linkComponent, 'fragment', 'new_value');
    }

}