在指令vs ng-controller中设置控制器

时间:2015-07-03 07:19:49

标签: angularjs controller

我有一个自定义指令,我在这里指定控制器:

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>

0 个答案:

没有答案