0
我想使用控制器的指令,但我想訪問url模板中的同一個控制器。我怎樣才能做到這一點?例如,我想沿着線的東西:如何訪問我在templateUrl中爲angularjs指令聲明的控制器?
<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>
,只是我不知道實際上我將如何參考指令所使用的控制器。有沒有辦法做到這一點?
這似乎並不能很好地擴展我想要的更多功能......另外,我想訪問我在聲明指令時使用的控制器。在這種情況下,對於該指令將會有一個聲明 「controller:MyController」 。 – markwongsk
你有沒有考慮過給自己的指令一個控制器?您可能需要更詳細地解釋您要實現的目標。 –
我加了一些細節。謝謝您的幫助! – markwongsk