2016-07-18 90 views
0

如何在angularjs指令中生成事件监听器函数?如何在angularjs指令中生成事件监听器函数?

这样的事情:

指令:

app.directive('myDirective',() => { 
    return { 
     scope: { 
      myDict: '=', 
     }, 
     templateUrl: 'directives/my-directive', 
    }; 
}); 

HTML:

<!-- my-directive.html --> 

<li ng-repeat="(key, value) in myDict"> 
    <!-- Will not work --> 
    <a onclick="function_written_in_frontend({{key}})">{{value}}</a> 
</li> 

使用它:

<my-directive myDict="{'a': 1, 'b': 2, 'c': 3}"></my-directive> 

我希望的是,它可能会产生:

<li> 
    <a onclick="function_written_in_frontend('a')">1</a> 
    <a onclick="function_written_in_frontend('b')">2</a> 
    <a onclick="function_written_in_frontend('c')">3</a> 
</li> 

但我不能。而ng-click可能不是这里的解决方案。

Thx提前。


更新:

如果我更新了我的指令是这样的:

app.directive('myDirective',() => { 
    return { 
     scope: { 
      myDict: '=', 
     }, 
     controller: function ($scope, $element) { 
      $scope.function_written_in_frontend = function(mykey) { 
       console.log(mykey); 
      } 
     }, 
     templateUrl: 'directives/my-directive', 
    }; 
}); 

,这让我:

{{key}} 
{{key}} 
{{key}} 
{{key}} 
+0

“但我不能”?那是什么意思?此外,'ng-click'是在AngularJS中添加onclick事件处理程序的首选方式。 –

+0

*“ng-click可能不是这里的解决方案”* ...为什么不呢? 'function_written_in_frontend'是什么意思?包括角的所有客户端都是前端。使用内联'onclick'不是首选在本地脚本中进行事件处理的方式 – charlietfl

+0

我可以调用另一个脚本编写的函数,如''? – Adam

回答

0

尝试ng-click代替onclick

<a ng-click="function_written_in_frontend(key)">{{value}}</a> 
相关问题