1

目前,我在链接函数中的 Angular 指令中有以下代码:(该指令插入到顶层的 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中有更好的方法吗?

提前谢谢了。

4

1 回答 1

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 很好地解决了这个问题。也许还有更好的解决方案?谢谢。

于 2014-09-22T09:22:21.637 回答