我是棱角分明的新人,对此非常兴奋。 我试图将我的顶级导航放入一个指令,因此它可以1)可恢复2)使我的HTML更容易阅读
然而,我不能让我的topMenu指令为我的生活工作。是不是可以看一眼我的小提琴,看看我做错了什么? 万分感谢,我失去了我的头发哈哈尔http://jsfiddle.net/g6pb0m4a/ 这是我的menu.js文件
//define menu controller
var menu = angular.module('MenuApp', [])
menu.controller('MenuCtrl', [function() {
var self = this;
self.active= '1';
self.navigation = [
{
menutext:"Home",
url:"#/"
},
{
menutext:"About App",
url: "#/aboutapp",
submenu:[
{
menutext:"Pricing",
url: "#/pricing"
}
]
}
];
}]);
menu.directive('topMenu', function() {
return {
restrict: 'E',
template: '<h2>test</h2>'
};
});
这是我的索引
<!DOCTYPE html>
<html>
<head>
<title>Fit Bit App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<link href="css/default.css" rel="stylesheet">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet">
<script src ="app/controllers/menu.js"></script>
</head>
<body ng-app="MenuApp">
<header>
<nav class="navbar navbar-inverse" data-ng-controller = "MenuCtrl as menuCtrl">
<div class="container-fluid">
<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="#">WebSiteName</a>
</div>
<div class="collapse navbar-collapse" id="myNavbar">
<ul class="nav navbar-nav" data-ng-repeat = "menuitem in menuCtrl.navigation">
<li ng-if="!menuitem.submenu"><a href={{menutext.url}}>{{menuitem.menutext}}</a></li>
<li class="dropdown" ng-if="menuitem.submenu"><a class="dropdown-toggle" data-toggle="dropdown" href="#">{{menuitem.menutext}}<span class="caret"></span></a>
<ul class="dropdown-menu">
<li data-ng-repeat = "submenu in menuitem.submenu"><a href={{submenu.url}}>{{submenu.menutext}}</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li><a href="#"><span class="glyphicon glyphicon-user"></span> Sign Up</a></li>
<li><a href="#"><span class="glyphicon glyphicon-log-in"></span> Login</a></li>
</ul>
</div>
</div>
</nav>
</header>
<div><top-menu></top-menu></div>
</body>
</html>
答案 0 :(得分:2)
您的问题主要是由于您注册应用和控制器的地方。在您的小提琴中,您正在使用选项onLoad
,因此jsfiddle将在window.onload
内的脚本面板中加载脚本,这是在角度尝试引导应用程序之后发生的,因为它找到了ng-app
指令。 HTML。而不是使用onLoad
选项使用wrap in body
(或head)选项,以便脚本面板中的脚本预先运行角度实例化您的应用MenuApp
。
的 Working Fiddle 强>