一旦从标头栏中单击菜单后,请尝试显示左导航菜单。我创建了两个指令,一个用于标头栏,一个用于菜单。但是,当我单击"标头栏"按钮时,应显示左导航菜单。但是目前它不起作用。
这是我尝试的:
(function() {
'use strict';
angular.module('test.header.module', []);
angular.module('test.header.module')
.directive('header',header)
.directive('menu', menu);
function header($compile){
return {
restrict: 'E',
template: '<header> <button ng-click="showMenu()"> Test Header </button> </header>'+
'<menu ng-if="menuS"></menu>',
link: function(scope, element, attr){
scope.showMenu = function(){
scope.menuS = true;
}
}
}
}
header.$inject = ["$compile"];
function menu(){
return{
restrict:'EA',
require: '^header',
template : '<h1 id="test">{{test}}</h1>',
link : function(scope, element, attr){
scope.test = "Test Left Nav";
}
}
}
})();
问题是require: '^header'
-找不到'标头'控制器。如果您删除此,则您的代码有效。另外,不需要$编译。
(function() {
'use strict';
angular.module('test.header.module', []);
angular.module('test.header.module')
.directive('header',header)
.directive('menu', menu)
function header(){
return {
restrict: 'E',
template: '<div> <button ng-click="showMenu()"> Test Header </button> </div>'+
'<menu ng-if="menuS"></menu>',
link: function(scope, element, attr){
scope.showMenu = function(){
scope.menuS = true;
}
}
}
}
function menu(){
return{
restrict:'EA',
template : '<h1 id="test">{{test}}</h1>',
link : function(scope, element, attr){
scope.test = "Test Left Nav";
}
}
}
})();
<!DOCTYPE html>
<html ng-app="test.header.module">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' + document.location + '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.5.x" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.10/angular.js" data-semver="1.5.10"></script>
<script src="app.js"></script>
</head>
<body>
<header></header>
</body>
</html>