use*_*596 6 navbar angularjs ecmascript-6 angular-material
我正在尝试使用Angular Material的角度应用程序,似乎无法让我的导航栏设置要选择的默认项目.我使用Angular Material Navbar(指令信息)来显示我的视图,这是我的导航栏模板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>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我将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);
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,为什么这不会使我在加载应用程序时默认选中我的列表项.
编辑
在我的情况下的问题是我的控制器没有在导航栏选择`md-selected-nav-item ="$ ctrl.currentNavItem"'中使用.为每个md-nav-item添加值似乎不会影响活动项目设置.
您需要设置value每个属性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>
Run Code Online (Sandbox Code Playgroud)
js
angular
.module
(
'MyApp',
['ngMaterial', 'ngMessages']
)
.controller
(
'AppCtrl',
function()
{
this.currentNavItem = "home";
}
);
Run Code Online (Sandbox Code Playgroud)