目前我在我的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中有更好的方法吗?
非常感谢提前。
答案 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是解决问题的好方法。也许甚至有更好的解决方案? 感谢。