我想使用带控制器的指令,但我想在url模板中访问同一个控制器。我怎样才能做到这一点?例如,我想要的是:
<my-directive ng-click="myController.doSomething()"></my-directive>
如果我没有制作自定义指令并声明
,那将会产生相同的效果<div ng-controller="MyController as myController" ng-click="myController.doSomething()"></div>
注意:我不是在寻找一种使用jquery来绑定链接函数中的点击行为的解决方案。
澄清:我正在使用带有angularjs的打字稿,我想做类似以下的事情:
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>
除了我实际上不知道如何引用指令使用的控制器。有没有办法做到这一点?
答案 0 :(得分:0)
让我们首先与小提琴互动,试着找出你想要达到的目标。这个当前包含一个可以单击的指令,并执行一些内部指令逻辑。
它使用elem.on()
代替ng-click
来捕获事件。如果您肯定想使用控制器来处理点击,您需要解释原因,以及它是否需要在指令外部(这通常是因为需要交互的可变数据)。