Javascript AngularJS如何从指令模板内捕获事件?
我有一个指令,它的模板中有一个元素,我想执行指令范围内的自定义方法:Javascript AngularJS如何从指令模板内捕获事件?,javascript,angularjs,javascript-events,event-handling,angular-directive,Javascript,Angularjs,Javascript Events,Event Handling,Angular Directive,我有一个指令,它的模板中有一个元素,我想执行指令范围内的自定义方法: <my-directive> <!-- my directives template --> <p>...</p> <img onload="myScopeMethod()"> <p>...</p> <!-- my directives template --> </my-directi
<my-directive>
<!-- my directives template -->
<p>...</p>
<img onload="myScopeMethod()">
<p>...</p>
<!-- my directives template -->
</my-directive>
我发现了这一点,但这只有在我将其应用于对元素起作用的指令时才有效
该指令的目的是显示一个小部件,它允许我通过拖动滑块来操作图像缩放它,但我需要以某种方式获得它的原始大小
如何让它从我的控制器作用域执行方法?您通常希望将load handler函数从模板本身中取出,并将其粘贴到链接函数中。从这里开始,它有点取决于您的指令,以及您使用的是隔离作用域、继承作用域还是与父作用域相同的作用域 如果您的指令定义对象中有一个范围键,并且它被设置为对象文字,那么您使用的是隔离范围。在这种情况下,您需要以某种方式传递它,最简单的方法是使用“&”选项 如果您没有范围键或范围键设置为布尔值,则使用相同的范围或继承的范围。在这种情况下,您只需调用$scope.originalScopeMethod,它就会在范围上调用它,或者在原型链中找到它 有三种不同的场景。底部的表格是从“主”控制器作用域输入的,而小数字是从指令作用域输入的 如果是我,我可能会选择隔离或继承范围,这样你就可以更容易地分别跟踪多个图像。我的示例中的共享作用域版本只适用于单个映像,但如果您真的需要,可以使用数组或散列
如果我以任何方式误解了你的问题,请告诉我。嘿,谢谢你的长篇大论和很好的例子。老实说,我还没有完全理解代码,我会在今天或明天尝试一下,因为我有时间这样做。我很确定它在做我想做的事情,我只是还不能让它在我的项目中发挥作用。如果你想发布到目前为止你的指令,我可能会帮你指出正确的方向。