angular error:$ compile:multidir

时间:2015-06-17 14:31:19

标签: angularjs

以下代码产生错误:$ compile:multidir error:

$(document).ready(function() {
    $('li').click(function() {
        $('li').removeClass('active');
        $(this).addClass('active');    
        var thisIndex = $(this).index();
        $('.col-md-9 .div').eq(thisIndex).show();
    });
});

html如下:

app.controller('myController', ['$scope', function ($scope) {
...
}]);


app.directive('myDirective', ['$window', '$timeout', function($window, $timeout) {
    return {
        restrict: 'A',
        scope: {

        },
        link: function(scope, elem, attrs) {}
...
}]);

你能说出什么问题吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您不能在同一个标​​签上创建两个创建子范围的指令,例如此处ng-controller& my-directive两者都放在同一个元素上。

  

ng-controller指令确实创建了一个原型范围   继承自子范围,它使用scope: true

     

my-directive指令正在创建一个与当前隔离的范围   范围

同一元素上的两个孤立范围是不可能的,您需要通过将priority: 1001设置为terminal: true的更高优先级来编译其中一个指令,terminal : true将确保无其他指令将在另一个之后触发。

但做上述事情是行不通的。您需要将指令放在controller元素中。这将解决您的问题。