Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何访问在templateUrl中为angularjs指令声明的控制器?_Angularjs_Angularjs Directive_Angularjs Controller - Fatal编程技术网

如何访问在templateUrl中为angularjs指令声明的控制器?

如何访问在templateUrl中为angularjs指令声明的控制器?,angularjs,angularjs-directive,angularjs-controller,Angularjs,Angularjs Directive,Angularjs Controller,我想对控制器使用指令,但我想在url模板中访问同一个控制器。我该怎么做?例如,我想要一些大致如下的东西: <my-directive ng-click="myController.doSomething()"></my-directive> 在模板中 <div ng-repeat="item in Controller.items" ng-click="Controller.doSomething()></div> 除了我不知道如何引用指令使用

我想对控制器使用指令,但我想在url模板中访问同一个控制器。我该怎么做?例如,我想要一些大致如下的东西:

<my-directive ng-click="myController.doSomething()"></my-directive>
在模板中

<div ng-repeat="item in Controller.items" ng-click="Controller.doSomething()></div>

除了我不知道如何引用指令使用的控制器。有什么方法可以做到这一点吗?

让我们从与小提琴的互动开始,试着找出你想要实现的目标。这一个当前包含一个指令,您可以单击该指令并执行一些内部指令逻辑


它使用elem.on而不是ng click来捕获事件。如果您确实想使用控制器来处理点击,您需要解释为什么,以及它是否需要在指令之外,这通常是因为需要交互的可变数据。

这似乎不能很好地扩展我想要的更多功能。。。另外,我想访问声明指令时使用的控制器。在本例中,该指令将有一个声明控制器:MyController。您是否考虑过为您的指令本身提供一个控制器?你可能需要更详细地解释你想要达到的目标。我补充了一些细节。谢谢你的帮助!
export class Controller {
  public items = [item1, item2, item3];

  public doSomething() {
    // do something
  }
}

export class MyDirective implements ng.IDirective {
  public templateUrl = "path/to/url";
  public controller = Controller;
  public link = // whatever my link function does;
}
<div ng-repeat="item in Controller.items" ng-click="Controller.doSomething()></div>