因此,我试图将菜单分成指令。我有一个非常简单的控制器:
function Menu(){
self = this;
self.tab = '';
self.selectedTab = function(tab){
self.tab=tab;
console.log('setting tab');
}
}
angular.module('app.menu')
.controller('MenuController',Menu);
和一个简单的指令:
function MenuDirective(){
return {
templateUrl:'Menu.html',
controller:'MenuController',
controllerAs:'menu'
};
}
angular.module('app.menu')
.directive('MenuDirective', MenuDirective)
app.menu
模块包含在我的app.js
中,并且我的指令以index
的形式存在于我的<menu-directive></menu-directive>
上。 Menu.html
中的代码可以正确显示,但是当我单击类似于<li class='menuTab' ng-class="{'active': menu.tab === '/'}"><a href="#/" class='menuAnchor' ng-click="menu.selectedTab('/')">Home</a></li>
的链接之一时,控制台日志不会显示,而CSS则无法使用。有什么想法/提示吗?如果我将其放回索引页而不是放在指令中,一切都很好。使用Angular 1.5.X框架 最佳答案
指令似乎看不到您的控制器。如果您将带有指令的控制器功能添加到同一文件中,并像这样直接引用它,该怎么办:
angular.module('app.menu')
.directive('MenuDirective', MenuDirective)
function MenuDirective(){
return {
templateUrl:'Menu.html',
controller: Menu,
controllerAs:'menu'
};
}
function Menu(){
self = this;
self.tab = '';
self.selectedTab = function(tab){
self.tab=tab;
console.log('setting tab');
}
}