我有一个自定义指令,我在这里指定控制器:
module.directive('myDirective', function(){
return{
restrict: 'E',
scope: {
attr1: "@myAttribute1",
attr2: "@myAttribute2"
},
template: '<div>Some content</div>',
controller: 'MyController'
}
});
但是,当我这样做时,设置了ng-click属性的页面上的按钮不会在触摸设备上触发。其他一切都是预期的。
然后我试图取消控制器的注释,然后按钮工作。
然后我用ng-controller将控制器添加到div中,然后按钮也可以工作。
module.directive('myDirective', function(){
return{
restrict: 'E',
scope: {
attr1: "@myAttribute1",
attr2: "@myAttribute2"
},
template: '<div ng-controller="MyController">Some content</div>'
}
});
基本上,当隔离范围时,指定控制器的两种方式之间有什么区别?
(我认为ng-click的错误是由MyController中的某些内容引起的,但是如果我找出指定控制器的两种方法之间的差异,那么我可能会找到错误的原因。)
修改
该指令就像这样使用
<my-directive my-attribute1="Val1" my-attribute2="Val2"></my-directive>