将内置的Angular指令绑定到custom指令中的方法

时间:2015-08-11 17:35:56

标签: javascript angularjs angularjs-directive angularjs-scope

我有一个自定义指令,需要在定义它的元素上查看mousemove事件。在这种情况下是否可以使用ng-mousemove,但是传递给ng-mousemove的函数是指我的自定义指令范围内的方法。例如:

HTML

<div my-directive ng-mousemove="go()"></div>

自定义指令:

...
scope: true,
link: function(){
  $scope.go = function () { ... };
}

我意识到我可以在我的指令中创建事件监听器来监视mousemove事件,但这似乎违反了标准的Angular方法。

1 个答案:

答案 0 :(得分:1)

依赖于指令范围内的任意函数看起来不像“完全封装”,更像是与它相反。顺便说一下,你无论如何也做不到。

标准角度方法就是这样的

app.directive('myDirective', function () {
  return {
    scope: true,
    transclude: true,
    template: '<div ng-transclude ng-mousemove="go()"></div>',
    link: function (scope){
      scope.go = function () { ... };
    }
  };
});