AngularJS ng-click 事件未在 ng-repeat 中触发 [英] AngularJS ng-click event not firing within ng-repeat

查看:32
本文介绍了AngularJS ng-click 事件未在 ng-repeat 中触发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个从 JSON 对象构建的标签列表...

<span ng-click="search = { tag: comedian.tag }">{{ comedian.tag }}</span>

以及从同一对象构建的图像列表...

<div ng-repeat="comedian in comedians.details | orderBy: 'name' | filter:search:strict"><img width="50" src="{{ comedian.image }}" alt="{{ comedian.name }}">

两个列表都按预期构建.但是点击事件不会触发来过滤图像.如果我手动构建如下所示的标签列表,则单击事件有效...

<span ng-click="search = { tag: 'Character'}">Character</span><span ng-click="search = { tag: 'Sitcom'}">Sitcom</span>

但是在 ng-repeat 里面他们没有.如果您需要任何其他详细信息,请告诉我!谢谢

解决方案

就像@Cherniv 在第一条评论中建议的那样:使用 $parent.search 以便分配到父作用域.

我主要将其添加为答案,以便可以接受,因为这个问题乍一看似乎没有答案,但实际上已经解决了.

I have a list of tags built from a JSON object...

<div ng-repeat="comedian in comedians.details | orderBy: 'tag' | unique: 'tag'">
    <span ng-click="search = { tag: comedian.tag }">{{ comedian.tag }}</span>
</div>

And a list of images built from the same object...

<div ng-repeat="comedian in comedians.details | orderBy: 'name' | filter:search:strict">
    <img width="50" src="{{ comedian.image }}" alt="{{ comedian.name }}">
</div>

Both lists build as expected. But the click event is not firing to filter the images. If I manually build the list of tags like below the click event works...

<span ng-click="search = { tag: 'Character'}">Character</span>
<span ng-click="search = { tag: 'Sitcom'}">Sitcom</span>

But inside the ng-repeat they do not. Let me know if you need any other details! Thanks

解决方案

Like @Cherniv suggested in the first comment: use $parent.search so assing to the parent scope.

I'm mostly adding this as an answer so it can be accepted, since this question looks pretty unanswered at first sight, while it's actually solved.

这篇关于AngularJS ng-click 事件未在 ng-repeat 中触发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆