当前位置: 首页 > 知识库问答 >
问题:

使用Angular(路由器)进行锚定

淳于星宇
2023-03-14

我正在尝试使用angular与主播合作,我已经做了我的研究,但没有成功,所以我正在联系你们。

我有 3 个组件 {导航栏组件, 红色组件, 蓝色组件} 导航栏组件有 2 个锚点。我希望当我单击其中一个时,它实际上会将我引导到正确的组件

导航栏组件.ts

  @Component({
  selector: 'navbar',
  template: `<ul>
    <li><a href="#red">Red</a></li>
    <li><a href="#blue">Blue</a></li>
  </ul>`
})
export class NavbarComponent {
  constructor() { }
}

红色. component.ts

@Component({
  selector: 'red',
  template: '<div id="red">Red Component</div>'
})
export class RedComponent {
  constructor() { }
}

blue.component.ts

@Component({
  selector: 'blue',
  template: '<div id="blue">Blue Component</div>'
})
export class BlueComponent {
  constructor() { }
}

app.component.html

<navbar></navbar>
<red></red>
<blue></blue>

应用程序模块

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { Routes, RouterModule } '@angular/router'; 
import { AppComponent } from './app.component';
import { NavbarComponent } from './navbar/navbar.component';
import { RedComponent } from './red/red.component';
import { BlueComponent } from './blue/blue.component';

@NgModule({
  declarations: [
    AppComponent,
    NavbarComponent,
    RedComponent
    BlueComponent
  ],
  imports: [
    BrowserModule,
    RouterModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

共有1个答案

赵英哲
2023-03-14

要超链接到组件的模板,您需要分配一个< code>id属性。您可以通过使用< code>@HostBinding -

@Component({
  selector: 'red',
  template: '<div id="red">Red Component</div>'
})
export class RedComponent {
  @HostBinding('id') id = 'red';
  constructor() { }
}

@Component({
  selector: 'blue',
  template: '<div id="blue">Blue Component</div>'
})
export class BlueComponent {
  @HostBinding('id') id = 'red';
  constructor() { }
}

Refer @HostBinding和@HostListener:它们是做什么的,有什么用?了解更多详情

 类似资料:
  • 我的路由配置有问题。我的应用程序逻辑——我在标题中有一个控制导航的下拉菜单。下拉选项通过下拉菜单下的额外导航栏导航到页面。单击下拉选项时,传递路由参数。问题是,我需要加载组件,它不在导航栏上,但在下拉导航后用作默认屏幕。 第一个导航“层”是下拉列表。之后,URL是index/Param#。 第二个导航“层”是导航栏,它加载在具有url索引/ Param#的页面上。在该页面上,我有组件(“默认屏幕”

  • 在我的React项目中,我有: 没有标题的登录组件 问题:我应该如何构建我的路由器从登录页面开始,当我点击登录时,路由器会把我带到仪表板?

  • 本文向大家介绍symfony3 使用YAML进行路由,包括了symfony3 使用YAML进行路由的使用技巧和注意事项,需要的朋友参考一下 示例 路由配置包含在您的app/config/config.yml文件中,默认情况下是该app/config/routing.yml文件。 从那里,您可以链接到捆绑包中的自己的路由配置 它还可能包含多个应用程序全局路由。 您可以在自己的捆绑包中配置路由,该路由

  • 我对角度路由有问题。我有主应用程序路由模块和子模块,具有自己的路由模块和路由器出口,但此子模块中定义的路由使用根路由器出口而不是子路由器出口显示。 我的文件夹结构: app-routing.module.ts app.component.html 家庭教学模块.ts 首页.组件.html 这就是我使用空路径时得到的 - 它可以正确打开主组件。 但是当我输入/register时,我从login.co

  • 非常类似于这个角度问题:当使用react路由器时,如何使用锚定链接进行页面内导航? 换句话说,我如何实现以下纯超文本标记语言时使用反应路由器? 目前我截取这种链接上的点击,并滚动到锚位置。这并不令人满意,因为这意味着不可能直接链接到页面的某个部分。

  • 我希望在我的Angular2页面上添加一些链接,当单击时,这些链接将跳转到页面中的特定位置,就像普通的hashtags所做的那样。所以链接应该是这样的 等等。 我不认为我需要HashLocationStrategy,因为我对正常的Angular2方式很好,但是如果我直接添加,链接实际上会跳转到根,而不是在同一个页面上的某个地方。任何方向都很感激,谢谢。