我正在尝试使用
Angular Material的角度应用程序,似乎无法让我的导航栏设置要选择的默认项目.我使用
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添加值似乎不会影响活动项目设置.
解决方法
您需要设置每个md-nav-item的值属性 –
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"; });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。