【问题标题】:ng-repeat value in array with same name具有相同名称的数组中的 ng-repeat 值
【发布时间】:2018-09-10 11:50:43
【问题描述】:

在我的数组中有多个具有相同名称的键值。我想在我的视图中列出它们,我该如何实现?

我在声明 [ngRepeat:dupes] Duplicates in a repeater are not allowed 时遇到错误。

这是我的 JSON 数组 :-

["text-align", "space-before", "space-before.conditionality", "font-size", "font-weight", "line-height", "font-size", "font-weight", "line-height", "space-before", "font-size", "font-weight", "line-height", "position", "top", "bottom", "right", "left", "text-align", "force-page-count", "break-before", "font-size"]

我们可以看到很少有键在重复。我需要列出所有重复的值,而不会在我的视图中丢失任何值

【问题讨论】:

标签: arrays json angular angularjs-ng-repeat


【解决方案1】:

您使用ng-repeat 它会遍历数组中的唯一值。如果您有重复的值,那么您需要明确提及 Angular 模块以忽略唯一的值并查找唯一的 index 值,方法是:

ng-repeat = "item in items track by $index"

使用track by,您可以明确提及在使用ng-repeat 渲染DOM 时应检查哪个值作为唯一性度量。您甚至可以使用对象的属性,例如item in items track by item.id,其中item 是具有id 属性的对象,items 是对象数组。

您的数组在数组中多次指定了font-size,因此请使用track by $index

【讨论】:

  • 我的数组中可能有空白值。我想将其过滤掉。我该怎么做?比如["text-align", "space-before"," ", " ", "font"]
  • @WhoAmI 你需要为此提出一个新问题
【解决方案2】:

你可以使用track by $index来消除这个错误,类似这样的

<tag ng-repeat="item in items  track by $index">

//content

</tag>

https://docs.angularjs.org/api/ng/directive/ngRepeat

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    相关资源
    最近更新 更多