因此,我试图将菜单分成指令​​。我有一个非常简单的控制器:

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');
  }
}

10-08 08:40
查看更多