【问题标题】:Angular Material Nav Bar Set Default Active Item角度材质导航栏设置默认活动项
【发布时间】:2016-09-09 19:57:55
【问题描述】:

我正在尝试使用 Angular Material 的 Angular 应用程序,但似乎无法让我的导航栏设置要选择的默认项目。我正在使用Angular Material Navbar (Directive Info) 来显示我的视图,这是我的导航栏模板 html:

<!-- Navbar -->
<md-content class="md-padding">
  <md-nav-bar md-selected-nav-item="currentNavItem" nav-bar-aria-label="navigation links">
    <md-nav-item md-nav-sref="layout.home" name="home">Home</md-nav-item>
    <md-nav-item md-nav-sref="layout.gallery" name="gallery">Gallery</md-nav-item>
    <md-nav-item md-nav-sref="#" name="page3">Page Three</md-nav-item>
  </md-nav-bar>
</md-content>

在我的控制器中,我将 currentNavItem 设置为“home”,它应该对应于我的名为 home 的 md-nav-item,我认为应该将其设置为基于 md-selected-nav-item="currentNavItem" 选择

export default class HeaderController {
  constructor($log) {
    Object.assign(this, {
      $log,
    });
    this.currentNavItem = 'home';
  }

  $onInit() {
    this.$log.debug('HeaderController.$onInit');
    this.$log.debug(this.currentNavItem);
  }
}

如果我在加载应用程序时不会默认选中我的列表项,我们将不胜感激。

编辑

我的问题是我的控制器没有在导航栏选择“md-selected-nav-item="$ctrl.currentNavItem"'中使用。为每个 md-nav-item 添加值似乎不会影响活动项目设置。

【问题讨论】:

    标签: angularjs ecmascript-6 navbar angular-material


    【解决方案1】:

    需要设置每个md-nav-itemvalue属性-CodePen

    标记

    <div ng-controller="AppCtrl as vm" ng-cloak="" ng-app="MyApp">
      <!-- Navbar -->
      <md-content class="md-padding">
        <md-nav-bar md-selected-nav-item="vm.currentNavItem" nav-bar-aria-label="navigation links">
          <md-nav-item md-nav-sref="layout.home" name="home" value="home">Home</md-nav-item>
          <md-nav-item md-nav-sref="layout.gallery" name="gallery" value="gallery">Gallery</md-nav-item>
          <md-nav-item md-nav-sref="#" name="page3" value ="page3">Page Three</md-nav-item>
        </md-nav-bar>
      </md-content>
    </div>
    

    js

    angular
        .module
        (
            'MyApp',
            ['ngMaterial', 'ngMessages']
        )
        .controller
        (
            'AppCtrl',
            function()
            {
                this.currentNavItem = "home";
            }
        );
    

    【讨论】:

    • 我更新了我的代码,还注意到我缺少md-selected-nav-item="$ctrl.currentNavItem" 的控制器语法,更改后似乎可以正常工作,但是由于某种原因,活动项目样式无法正确呈现。也许是缓存问题?我没有在任何地方为标题提供任何 CSS。我将用我正在渲染的内容更新我的原始帖子。
    • @user3786596 我想我回答了你原来的问题。也许最好为未来的读者创建另一个关于样式问题的问题。
    • 'value' 不是 md-nav-item 的可识别属性
    • @ricka 使用 name 属性。不确定它是否改变了,但它应该是名称属性而不是值
    • “此处不允许使用值属性”并且什么都不做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    • 2015-06-06
    • 1970-01-01
    相关资源
    最近更新 更多