在指令的内部模板中单击ng不提供该功能

use*_*260 9 javascript angularjs

ng-click没有提供警报.单击指令的内部模板时,不会显示警告框.

小提琴链接在这里:http://jsfiddle.net/NNDhX/

Val*_*nov 16

您的指令有自己的独立范围.函数'hi'应该在指令的范围内.如果你想传递你的控制器的功能,你应该做,scope: { ..., hi: '&' }然后<you-directive hi='hi' ..>.以下是有关此文档的链接:了解Transclusion和Scopes.

所以只需在链接功能中添加就足够了:

  link: function(scope, element, attrs) {
  scope.hi = function() { alert("hi"); }
Run Code Online (Sandbox Code Playgroud)

这是更新的小提琴:http://jsfiddle.net/GwBAh/


小智 6

我不知道这是否是最好的方法,但你可以使用$ parent in directive来访问父范围.

<a ng-click="$parent.hi();">parent</a>
Run Code Online (Sandbox Code Playgroud)

这里是完整小提琴示例的链接:http://jsfiddle.net/EKDse/