angularjs unnest ng-repeats 进入一个查询

Posted

技术标签:

【中文标题】angularjs unnest ng-repeats 进入一个查询【英文标题】:angularjs unnest ng-repeats into one query 【发布时间】:2014-04-29 10:39:10 【问题描述】:
<div ng-repeat="blub in filtered = (blubs | filter:tag)">
  <span ng-repeat="tag in blub.tags" class="tag-box">tag</span>
</div>

如何将其取消嵌套到一个查询中。我想象它是这样的:

<span ng-repeat="tag in blub.tags in filtered = (blubs | filter: tag)>tag</span>

对象 blub 有多个标签,有多个 blub 对象。

编辑: 柱塞: http://plnkr.co/edit/mWjyryOsV5zZJisZzV3D 目标:将 2 次 ng-repeat 减少为 1 个 ng-repeat,显示相同的标签。

【问题讨论】:

请尝试多解释一下这个问题,plunkrs / demos 总是有用的 【参考方案1】:

在这种情况下,我建议您首先创建一个集合,而不是进行双循环。

<span ng-repeat="tag in getBlupList(filtered)" class="tag-box">tag</span>

其中 getBlupList(filtered) 是 JS 方法。某种 reducer 可以创建一个列表而不是您拥有的列表。 我不知道你的收藏是什么样子,但就我个人而言,在这种情况下,最好的解决方案是使用 Underscore.js lib。 ".flatten()" 或 ".pluck()"

【讨论】:

好的,所以没有脚本就没有选择吗?因为这使得 angular 的所有不错的过滤功能不再有用,如果我无论如何都必须在 .js 文件中过滤才能获取列表。 我不知道没有脚本的方法。而且您仍然可以使用过滤器。您可以在从服务器获取数据后创建一个数组或集合,并将此变量添加到 ng-repeat。很难判断,因为我不知道你的收藏是什么样子的。

以上是关于angularjs unnest ng-repeats 进入一个查询的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery:使用 UNNEST 检查数组的内容

unnest_tokens 及其错误(“”)

Google Bigquery 外部加入 UNNEST

UNNEST/在雪花中展平

Bigquery unnest 最小行数

UNNEST(hit.eCommerceAction),谷歌 Bigquery