我第一次用angular构建一个web应用程序,并使用了bootstraps css(angular ui)。我正在使用导航栏从引导和路由到ng模板与ng路由。一切都很好。
现在我想在导航栏中包含一个下拉按钮,在那里我可以访问一些额外的链接进行路由。我是这样编的:
<nav class="navbar navbar-default navbar-static-top" role="navigation" ng-controller="NavigationCtrl">
<div class="navbar-header">
<button type="button" class="navbar-toggle" ng-click="nav.collapsed=!nav.collapsed">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse navbar-right" collapse="nav.collapsed">
<ul class="nav navbar-nav">
<li>
<a href="#/index" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-home"></span>
Home
</a>
</li>
<li class="dropdown">
<a href="" class="dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-cog"></span>
Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-toggle" data-toggle="dropdown" role="menu">
<li>
<a href="#/configA" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigA
</a>
</li>
<li>
<a href="#/configB" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigB
</a>
</li>
<li>
<a href="#/configC" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigC
</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
我的路线是这样的:
app.config(["$routeProvider", function ($routeProvider) {
$routeProvider
// route for the main page
.when("/index", {
templateUrl: "/index"
})
// route for the about page
.when("/configA", {
templateUrl: "/configA"
})
// route for the about page
.when("/configB", {
templateUrl: "/configB"
})
// route for the about page
.when("/configC", {
templateUrl: "/configC"
})
.otherwise({redirectTo: "/index"});
}])
我的模板在html头中作为脚本,如:
<script type="text/ng-template" id="/index">
<div>
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>...</p>
<p><a class="btn btn-primary btn-lg" role="button">Learn more</a></p>
</div>
</div>
</script>
这适用于导航栏中的常见链接。但是点击下拉列表中的链接不起作用,只是什么都没发生:(我错过了什么吗?
您必须创建一个ancor链接。
只需创建一个真正的链接,它应该可以正常工作:
<nav class="navbar navbar-default navbar-static-top" role="navigation" ng-controller="NavigationCtrl">
<div class="navbar-header">
<button type="button" class="navbar-toggle" ng-click="nav.collapsed=!nav.collapsed">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse navbar-right" collapse="nav.collapsed">
<ul class="nav navbar-nav">
<li>
<a href="/index" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-home"></span>
Home
</a>
</li>
<li class="dropdown">
<a href="" class="dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-cog"></span>
Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu dropdown-toggle" data-toggle="dropdown" role="menu">
<li>
<a href="/configA" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigA
</a>
</li>
<li>
<a href="/configB" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigB
</a>
</li>
<li>
<a href="/configC" ng-click="nav.collapsed=true">
<span class="glyphicon glyphicon-dashboard"></span>
ConfigC
</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
我似乎必须从下拉菜单ul classlist中删除"下拉切换"以及数据切换="下拉"属性。现在它就像一个魅力:)
由于这个答案而得以解决:https://stackoverflow.com/a/18546378/2577116