html - 我如何从一个组件路由到 Angular 中另一个组件的一部分?

标签 html css angular routes

我有两个组件,它们位于不同的 route 。在第二个组件中有一个 div。我想从第一个组件路由到第二个组件的 div。是的,布线第二个组件很简单。但我想滚动到 div 的顶部。 enter image description here

感谢您的回答。

最佳答案

这个标签在component1中声明

<a [routerLink] = "['/c2']" fragment="c2id"> Link </a>

这里是 component2 的变化

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
  selector: 'app-c2',
  templateUrl: './c2.component.html',
  styleUrls: ['./c2.component.css']
})
export class C2Component implements OnInit {
  private fragment: string;

  constructor(private route: ActivatedRoute) {}

  ngOnInit() {
    this.route.fragment.subscribe(fragment => {
      this.fragment = fragment;
    });
  }
  ngAfterViewInit(): void {
    try {
      document.querySelector('#' + this.fragment).scrollIntoView();
    } catch (e) {}
  }
}

你的 component2 html 将是这样的

<p style="height: 800px;">
c2 works!
</p>
<hr>
<div id="c2id" style="height: 500px;">
  The div with c2id
</div>

这是更新后的工作 stackblitz https://angular-fragment-example.stackblitz.io

关于html - 我如何从一个组件路由到 Angular 中另一个组件的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63134018/

相关文章:

javascript - 在 MDL 中打开抽屉时调整内容大小

html - 在电子邮件签名中使用高级 ccs 图标

html - CSS?这个箭头是怎么做出来的?

angular - Ngx-Bootstrap 和 Angular 9 ModuleWithProviders 错误

javascript - Angular 7、Ngrx、ExpressionChangedAfterItHasBeenCheckedError

javascript - 使用 ng-repeat 时在 <select> 中预选 <option>

javascript - Qualtrics 更改选择组排名的文本

css - 多个漂浮清晰,但右边的漂浮物被左边的漂浮物压低

javascript - 检查8秒内是否没有返回响应

HTML 输入占位符,首字母 CSS 更改不适用于更新的浏览器