我有两条路线。从一条路线我需要通过按钮点击获得另一个路线的div元素。我用id(#)
做了类似的方式,我们用HTML做了但是它没有用。你能建议一个在Angular中做的最佳方法吗?
路线一(/ route1)
<div class="div1">
<p>hi</p>
</div>
<div class="div2">
<p>hello</p>
</div>
路线到(/路线2)
<button (click)="getDiv()"></button>
TS
getDiv()
{
this.router.navigate(['/route1']); // I need to get div1 of route1 here
}
如果您使用的是角度为6.1的版本,则可以手动启用anchorScrolling
app.module.ts
@NgModule({
imports: [ BrowserModule, FormsModule, RouterModule.forRoot(route,{
anchorScrolling: 'enabled'
}) ],
declarations: [ AppComponent],
bootstrap: [ AppComponent ]
})
然后指定要滚动到的div上的id
路由器a.component.ts
<div class="div1" id="div1">
<p>Div1</p>
</div>
<div class="div2" id="div2" >
<p>Div2</p>
</div>
最终使用片段导航到当前div位置
getDiv() {
this.router.navigate(['/route2'], { fragment: 'div2' });
}
你的html应该在不同的模块中,并且应该配置路由。在html中使用以下代码将使用相同的路由。
<button [routerLink]="['/route1']">View All</button>
您的路由器应配置为root。