gpt4 book ai didi

angular - 导航栏不使用 ng-bootstrap 和 Angular 4 在浏览器中呈现

转载 作者:太空狗 更新时间:2023-10-29 17:24:13 25 4
gpt4 key购买 nike

我正在构建我的第一个 Angular 4 应用程序,使用 ng-bootstrap(用于 Angular 的 Bootstrap 4)——不使用常规的 Boostrap

ng-bootstrap 网站 ( https://ng-bootstrap.github.io/#/components/accordion/api ) 没有列出导航栏的组件(就像在 Bootstrap 3 或常规 bootstrap 4 中那样)。这是否意味着我必须从下拉菜单/按钮中构建一个菜单?或者我必须将常规 Bootstrap 4 与 ng-bootstrap 混合使用?

我尝试在 html 中创建此菜单,但它不会在浏览器中呈现(只有品牌“MyWebSiteName”和屏幕上的小灰色框,没有导航)

<nav class="navbar navbar-inverse">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">MyWebSiteName</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Page 1 <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Page 1-1</a></li>
<li><a href="#">Page 1-2</a></li>
<li><a href="#">Page 1-3</a></li>
</ul>
</li>
<li><a href="#">Page 2</a></li>
<li><a href="#">Page 3</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
<li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</div>
</div>
</nav>

这个 HTML 有问题吗?或者有人有与 ng-bootstrap 一起使用的导航栏示例吗?

最佳答案

由于没有导航组件,您需要结合使用 ng-bootstrap 的折叠功能 ngbCollapse组件以及 NgbDropdown 中的下拉功能成分。

您需要将 ngbCollapse 的实例绑定(bind)到 div.collapse.navbar-collapse 和组件类的 bool 属性。 ng-bootstrap 对 data-* 没有任何用处,因此您可以删除 data-toggle="collapse" 等属性。

您可以通过组件类上的属性控制折叠菜单的打开/关闭状态,该属性通过类似点击事件的方式切换为 true/false。在此示例中,通过 button.navbag-toggler 上的 (click) 事件处理程序进行切换,在组件 toggleMenu() 上执行一个方法通过 ! 运算符简单地反转 bool 属性 isCollapsed 的值。

对于菜单项下拉菜单,您可以使用 NgbDropdown成分。您可以将属性 ngbDropdownngbDropdownToggle 分别应用于容器元素和切换元素。

<div class="nav-item dropdown" ngbDropdown>
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" ngbDropdownToggle>
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="dropdownBasic1">
<button class="dropdown-item">Action - 1</button>
<button class="dropdown-item">Another Action</button>
<button class="dropdown-item">Something else is here</button>
</div>
</div>

关于 Bootstrap 4 的样式 navbar ,您需要使用以下类:

Navbars require a wrapping .navbar with .navbar-toggleable-* for responsive collapsing and color scheme classes.

button.navbar-toggle 等元素在 Bootstrap 4 中现在是带有“r”的 button.navbar-toggler。您使用类 navbar- inversebg-inverse 用于标准的反向导航栏。

HTML:

<nav class="navbar navbar-toggleable-md navbar-inverse bg-inverse">
<button class="navbar-toggler navbar-toggler-right" type="button" aria-controls="appNavigation" [attr.aria-expanded]="!isCollapsed" aria-label="Toggle navigation" (click)="toggleMenu()">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="#">My App</a>
<div class="collapse navbar-collapse" id="appNavigation" [ngbCollapse]="isCollapsed">
<div class="navbar-nav mr-auto">
<a class="nav-item nav-link" routerLink="" routerLinkActive="active">Home</a>
<a class="nav-item nav-link" routerLink="/about" routerLinkActive="active">About</a>
<div class="nav-item dropdown" ngbDropdown>
<a class="nav-link dropdown-toggle" id="navbarDropdownMenuLink" ngbDropdownToggle>
Dropdown
</a>
<div class="dropdown-menu" aria-labelledby="dropdownBasic1">
<button class="dropdown-item">Action - 1</button>
<button class="dropdown-item">Another Action</button>
<button class="dropdown-item">Something else is here</button>
</div>
</div>
</div>
</div>
</nav>

TS:

export class NavigationComponent {
isCollapsed = true;

constructor() {}

toggleMenu() {
this.isCollapsed = !this.isCollapsed;
}
}

这是一个plunker演示实际的功能和样式。

关于angular - 导航栏不使用 ng-bootstrap 和 Angular 4 在浏览器中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com