折叠在移动设备的 Angular 导航栏中不起作用

Collapse not working in Angular navbar for mobile

我有一个没有 Jquery 的 Angular 项目。 我想要一个带有 mdbootstrap 的导航栏,但是当我在 html 中编写 mdbootstrap 代码时,折叠不起作用。 这是我的 html 内容。

<header>
  <nav class="navbar navbar-expand-lg navbar-dark primary-color">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav"
            aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Pricing</a>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled" href="#">Disabled</a>
        </li>
      </ul>
    </div>
  </nav>
</header>

documentation 不是很 user-friendly,但仍然遍历基本导航栏...类 使用告诉它何时从汉堡菜单移动到展开形式(navbar-expand-lg 在我们的例子中);其余只是下面示例中的虚拟文本。

相关HTML:

<mdb-navbar SideClass="navbar navbar-expand-lg navbar-dark pink ie-nav" [containerInside]="false">
    <mdb-navbar-brand>
        <a class="logo navbar-brand" href="#"><strong>Navbar</strong></a>
    </mdb-navbar-brand>
    <links>
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active waves-light" mdbWavesEffect>
                <a class="nav-link">Home <span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link">Features</a>
            </li>
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link">Pricing</a>
            </li>
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link">Opinions</a>
            </li>
        </ul>
        <ul class="navbar-nav nav-flex-icons">
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link"><mdb-icon fab icon="facebook-f"></mdb-icon></a>
            </li>
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link"><mdb-icon fab icon="twitter"></mdb-icon></a>
            </li>
            <li class="nav-item waves-light" mdbWavesEffect>
                <a class="nav-link"><mdb-icon fab icon="instagram"></mdb-icon></a>
            </li>
        </ul>
    </links>
</mdb-navbar>

相关CSS:

.navbar-toggler-icon{ border:2px solid red;}
.navbar-brand, .nav-link{color:red !important;}

完成working stackblitz here

我发布了使用 Angular Material 库将 sidenav 作为应用程序主导航的最佳方法。然后你不需要安装任何其他库 Angular Material

npm i --save @angular/material @angular/cdk @angular/animations

ng add @angular/material

这是一个代码:https://stackblitz.com/edit/angular-c8gpuh

这里有一个视频教程:https://www.youtube.com/watch?v=Q6qhzG7mObU

在你的 app.component.html 中:

<sidenav-autosize-example>
   <router-outlet></router-outlet>
</sidenav-autosize-example>

并记得将 nessesery 模块导入您的项目:

import { NgModule } from '@angular/core';

import { MatSidenavModule, MatToolbarModule, MatButtonModule, MatIconModule, MatProgressBarModule } from '@angular/material';


@NgModule({
    declarations: [],
    imports: [
        MatSidenavModule,
        // MatToolbarModule,
        MatButtonModule,
        MatIconModule,
        // MatProgressBarModule,
    ],
    exports: [
        MatSidenavModule,
        // MatToolbarModule,
        MatButtonModule,
        MatIconModule,
        // MatProgressBarModule,
    ],
})
export class MaterialModule { }