jquery - 如何从 Controller 内的事件访问范围?

标签 jquery angularjs events dom scope

我有一个 div 元素和一个附加到它的 ng-click 事件处理程序。类似的东西

<div ng-controller='controller' ng-click='handle($event)'>
  <div ng-repeat='foo in foos'>{{foo.name}}</div>
</div>

当用户单击 foo.name 时,我可以捕获该事件,但似乎无法访问 ng-repeat 创建的隔离范围。

我尝试遵循这条路径 getEvent->getTarget->getBindedScope。

实际代码类似于

var a = $($event.target)
var ac = a.scope();

但是当我这样做时

console.log(ac);

注销的内容是“未定义”。

我希望在这里实现的是访问该范围并获取其他内容。例如 foo.id 或 foo.someproperty

非常感谢您提前提供的帮助。

PS:我知道这不是AngularJS的方式,但由于其他一些原因我希望实现。

PS2: $event.target 已尝试。记录结果是这样的

最佳答案

我不太清楚你想要做什么(我不怎么使用 jQuery,也不使用 AngularJS),但我知道你想要访问 foo 对象(或该项目的其他方面)范围)在 ngClick 方法的 ngRepeat 内。

你能不这样做吗?

<div ng-controller='controller'>
  <div ng-repeat='foo in foos' ng-click='$parent.handle($event)'>{{foo.name}}</div>
</div>

这样,您就可以从 ngRepeat 项的隔离范围内调用父 Controller 的 handle() 方法(由于 $parent 前缀)。

请告诉我这是否有帮助。

关于jquery - 如何从 Controller 内的事件访问范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23662186/

相关文章:

javascript - 窗口大小调整时粘性表格标题不改变宽度

javascript - ng-repeat 重复指令所在的 div

javascript - SVG foreignObject 中的 Div 失去了它的位置并且在最新的 chrome 版本(版本 61.0.3163.100 [62 位])中不可见

JavaScript/JQuery 如何设置再次调用方法之前的时间?

javascript - 无法将方法的头部传递给 React 标记中的事件处理

events - Vim 中 MenuPopup 的 autocmd 事件

jquery - 为列表中的最后一行元素添加类

asp.net - 如何在代码隐藏中检查请求是否为 ajax - ASP.NET Webforms

javascript - 当不需要数据绑定(bind)时如何使 Angular 更快

javascript - 从子窗口获取URL参数并加载父窗口