我正在使用Angular和Express创建我的第一个Web应用程序。该应用程序包含一个画布,我在其中保留一个列表,其中包含绘制的点。目前,画布旁边有一个空文本框,当用户按下“输入”键时。在文本框中,我的点数列表将通过ng-submit返回,即(使用Jade显示)
body(ng-controller="Controller", onload="init()")
canvas#can(width='2000',height='800',style='not important')
img#canvasimg(style='not important')
form(ng-submit="submit('" + target + "')")
input(ng-model="under")
li(ng-repeat="value in results track by $index") {{value}}
对于上述代码,'结果'指的是积分列表,并且'在'返回的是相同的点列表(即req.body.under从单独的js文件引用...不确定如何消除冗余)。
我的主要问题是我不希望用户按下按钮或手动指定何时运行ng-submit。相反,我想要基于Javascript中定义的事件监听器返回的点列表,即
canvas.addEventListener("mouseup", function (e) {
//return list of points here
}, false);
由于ng-submit是表单的一部分,因此在提交表单时会发生返回点列表的触发事件。基本上,我怎样才能依靠事件监听器来实现“鼠标”功能。我在JS中定义了什么?
注意:我查看了ngMouseUp,但还没有能够返回或提交'我的点列表与ng-submit类似。让两个不同的事件监听器监视同一事件似乎也是多余的。
修改 我刚试过的一个hacky解决方案是通过
系统地点击JS事件监听器中的Submit按钮document.getElementById("button-id").click();
这似乎有效,但我并不为此感到自豪。我仍然对建议采用更清洁的解决方案非常感兴趣。