如何访问在templateUrl中为angularjs指令声明的控制器?
我想对控制器使用指令,但我想在url模板中访问同一个控制器。我该怎么做?例如,我想要一些大致如下的东西:如何访问在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> 除了我不知道如何引用指令使用
<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>