【问题标题】:Angular: Create bootstrap like navbar using material2Angular:使用material2创建类似导航栏的引导程序
【发布时间】:2018-03-21 19:35:31
【问题描述】:

我正在浏览 material2 文档以了解如何创建导航栏的详细信息,例如 bootstrap 提供的导航栏,但找不到。任何人都可以分享使用material2 创建navbar 的文档吗?我的引导示例代码如下。我想创建这个在移动布局上自动转换为汉堡包的导航栏。想过使用<mat-toolbar>,但这不会在移动布局上呈现为汉堡包。知道如何在 Angular Material 中获得完整的功能吗?此引导模板的演示版可在此处获得:https://www.w3schools.com/bootstrap/trybs_theme_me_complete.htm

引导代码:

<!-- Navbar -->
<nav class="navbar navbar-default">
  <div class="container">
    <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="#">Me</a>
    </div>
    <div class="collapse navbar-collapse" id="myNavbar">
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">WHO</a></li>
        <li><a href="#">WHAT</a></li>
        <li><a href="#">WHERE</a></li>
      </ul>
    </div>
  </div>
</nav>

【问题讨论】:

  • 可以分享一下你试过的材料代码吗?如果您可以创建一个 plunker,它将对我们有所帮助
  • @Aravind 我不太确定材料的哪个组件基本上是导航栏的同义词。这是我的主要问题。想过使用工具栏,但这不会在移动布局上呈现为汉堡包。知道如何在材料中获得完整的功能吗?
  • 你应该结合 flex 布局或 bootstrap 来提高响应能力!
  • 但是使用引导程序的问题是我必须包含 jQuery 才能使默认操作生效。我不想在 Angular 应用程序中包含 jQuery,这就是为什么考虑迁移到 Material 的原因。
  • 我们不要卷入一场激烈的战争——他不想在 TypeScript 应用程序中使用 jQuery,而是想研究转向 material2。就这样吧。

标签: html twitter-bootstrap angular angular-material


【解决方案1】:

md-toolbar 是你的朋友(来自here)。

<md-toolbar color="primary">
  <button md-button routerLink="/"><md-icon>home</md-icon>{{title}}</button>
  <div fxLayout="row" fxShow="false" fxShow.gt-sm>
      <button md-button routerLink="/products">Products</button>
      <button md-button routerLink="/dashboard">Dashboard</button>
  </div>
  <button md-button [md-menu-trigger-for]="menu" fxHide="false" fxHide.gt-sm>
     <md-icon>menu</md-icon>
  </button>
</md-toolbar>
<md-menu x-position="before" #menu="mdMenu">
    <button md-menu-item routerLink="/products">Products</button>
    <button md-menu-item routerLink="/dashboard">Dashboard</button>
    <button md-menu-item>Help</button>
</md-menu>

不要忘记在您的 TypeScript 代码中导入正确的模块。

如果你想让它粘在顶部 - 你可以应用这个:

.fixed-header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100% !important;
}

【讨论】:

  • 谢谢,但这不会在移动布局上呈现为汉堡包。知道如何在材料中获得完整的功能吗?
  • @Manu 更新了。尚未测试它是否可以编译 - 但为您提供了它的基本概念。
  • 得到错误:未处理的承诺拒绝:模板解析错误:无法绑定到“md-menu-trigger-for”,因为它不是“按钮”的已知属性。
  • @Manu 那是缺少导入,可能是按钮或菜单模块。
  • 好的...让我来解决这个问题。如果它在一段时间内有效,肯定会更新您。感谢您的帮助!
猜你喜欢
  • 2015-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2019-07-18
  • 2015-06-24
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多