在angular指令内调用函数并在参数中注入事件

ops*_*rio 2 function angularjs angularjs-directive

我需要你的帮助.

我有一个带有函数参数的指令(范围:{myParam:'@'}).我在HTML中传递参数,比如my-param ="myFunc(param1,param2)"

这非常有效.但是,我需要将事件对象注入参数.有人知道我该怎么办?

我尝试了$ provider.annotate和$ provider.instantiate,但它们没有用,因为它在指令中使用了引用函数.(在我的情况下为$ a),因此它无法获取函数参数.

任何的想法?

小智 7

当您调用由&isolate作用域语法创建的函数时,可以将参数作为命名映射传递给它.如果您的指令定义如下:

scope: { myParam: '&' },
link: function (scope, el) {
  el.on('click', function (e) {
    scope.myParam({$event: e});
  });
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用:

<my-directive my-param="console.log($event)"></my-directive>
Run Code Online (Sandbox Code Playgroud)

......你应该看到理想的行为.