用纯AngularJS替换jQuery MouseEvent

时间:2014-09-22 08:16:57

标签: jquery angularjs jqlite

目前我在我的Angular指令中的link函数中有以下代码: (该指令在顶层插入dom。)

$(document).on("mousedown", ".resizer", function (e) {
    e.preventDefault();
    resizing = true;
    frame = $(e.target).parent();
});

$(document).mousemove(function (e) {
}

我想丢弃jQuery并使用纯Angular。

用Angular替换上面代码的正确方法是什么。 在具有类ng-mousedown的元素中使用Angular指令.resizer并将事件广播到我的顶级指令是否有意义?

Angular中有更好的方法吗?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我们走了:

.controller('controllerFromDirective_resizeWidget', function ($scope) {
    this.mouseDownResizer = function (e) {
    };
});

.directive('mouseDownOnElement', function () {
    return {
        require: '^resizeWidget',
        link: function (scope, element, attr, controller) {
            element.on("mousedown", function (e) {
                e.preventDefault();
                controller.mouseDownResizer(e);
            });
        }
    };
});

IMO是解决问题的好方法。也许甚至有更好的解决方案? 感谢。