【问题标题】:AngularJS ng-click event not firing within ng-repeatAngularJS ng-click 事件未在 ng-repeat 内触发
【发布时间】:2013-10-21 22:24:38
【问题描述】:

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

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

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

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

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

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

但在 ng-repeat 内部却没有。如果您需要任何其他详细信息,请告诉我!谢谢

【问题讨论】:

  • 尝试范围' $parent : &lt;span ng-click="$parent.search = { tag: 'Sitcom'}"&gt;Sitcom&lt;/span&gt;
  • 请发布您的 Json 对象
  • 添加 $parent。工作!谢谢。
  • 欢迎您,如果您想知道为什么它在起作用,请阅读:stackoverflow.com/questions/14049480/…
  • 看看这个答案(stackoverflow.com/a/19301144/1057639)。问题是一样的。您可能应该了解原型继承是如何工作的。同样使用$parent也是错误的处理方式。

标签: javascript angularjs angularjs-ng-repeat


【解决方案1】:

就像@Cherniv 在第一条评论中建议的那样:使用$parent.search 以便访问父范围。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    相关资源
    最近更新 更多