我有一个 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/