以下代码产生错误:$ 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) {}
...
}]);
你能说出什么问题吗?
谢谢
答案 0 :(得分:1)
您不能在同一个标签上创建两个创建子范围的指令,例如此处ng-controller
& my-directive
两者都放在同一个元素上。
ng-controller
指令确实创建了一个原型范围 继承自子范围,它使用scope: true
my-directive
指令正在创建一个与当前隔离的范围 范围
同一元素上的两个孤立范围是不可能的,您需要通过将priority: 1001
设置为terminal: true
的更高优先级来编译其中一个指令,terminal : true
将确保无其他指令将在另一个之后触发。
但做上述事情是行不通的。您需要将指令放在controller元素中。这将解决您的问题。