我有一个dom元素(< canvas>)与用户交互。与用户的交互取决于所选的选项。由于有几个选项,我在DOM元素中添加了几个侦听器,在代码的几个部分中。
哪种方法可以控制不同的互动?例如,我为“mousedown”添加了两个听众。事件,其中一个是选择一个图像而另一个是创建一个新图像。当启用选择图像的选项时,应该执行相应的侦听器,而另一个侦听器应该被阻止。
现在,我可以使用布尔值来处理这个问题,但是,我有两个以上的选项可以与dom元素进行交互。
dom元素在工厂中,以便在添加侦听器的不同控制器中可用:
angular.module("app", [])
.factory("myFactory", function(){
var canvas = document.createElement("canvas");
return {canvas: canvas};
})
.controller("controller1", function(myFactory){
myFactory.canvas.addEventListener("mousedown", function(){});
})
.controller("controller2", function(myFactory){
myFactory.canvas.addEventListener("mousedown", function(){});
})
.controller("controller3", function(myFactory){
myFactory.canvas.addEventListener("mousedown", function(){});
})
感谢您的帮助。