- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Angular 构建来自 JSON API 调用的数据表。我不得不使用嵌套的 ngRepeat 但是我看到奇怪的结果,当行有几个空字符串时,整个表行都丢失了。
我可以用以下 plunk 重现。
http://plnkr.co/edit/VCzzzPzfgJ95HmC2f83P?p=preview
<script>
function MyController($scope){
$scope.test = {"rows":[
["one","two","three"],
["one","two","three"],
["one","","three"],
["one","",""],
["","two",""],
["","","three"],
["one","two","three"],
["one","two","three"],
]};};
</script>
<div ng-app ng-controller="MyController">
<table>
<tr ng-repeat="(key,ary) in test.rows">
<td>{{key}}</td>
<td ng-repeat="value in ary">{{value}}</td>
</tr>
</table>
</div>
最佳答案
是的。您需要使用 track by $index
因为您正在重复原语,或者将其转换为对象数组。原因是 ng-repeat 创建唯一 id $$hashkey
(并附加到重复的对象作为属性)如果它是一个对象(除非您指定某些东西作为跟踪依据)的每个迭代值。
在您的情况下,您有原语,因此它不能附加属性本身,因此它会尝试将重复的值视为标识符,并且当您迭代多个空字符串时它会发现重复。当您重复对象数组且其中多个对象未定义或为空时,您会看到相同的效果..
因此,在这种情况下,您可以使用 track by $index
因此,重复的项目将通过其索引进行跟踪。
<td ng-repeat="value in ary track by $index">{{value}}</td>
id
),您可以将其设置为
track by
属性(property)。当您重新绑定(bind)数组(或刷新数组)时,angular 使用跟踪的标识符来确定它是否需要从 DOM 中删除元素并重新创建它,或者只是刷新已经存在的元素。在使用项目列表刷新列表的许多情况下,总是希望使用带有重复对象上的标识符的跟踪以提高性能。
关于angularjs - ng重复 :dupes - duplicates in repeater with nested ngrepeat and empty strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26152576/
所以目前我正在摆弄一些看起来有点像下面的东西。 其设计目的是,如果学生(学生)修读了 3 个或更多同一类(class)(科目)的实例,则显示出勤情况。 有时老师(老师)有替补,所以我们需要知道当学生上
(使用 AngularJS) 我正在学习 AngularJS 并尝试一个简单的结账系统。我有两列,左边有元素,右边有篮子(购物车)。本质上,您可以从左侧添加项目,它们会出现在右侧的购物篮中。 问题是,
重复指令从 api 输出葡萄酒记录。我有一个工厂函数来提供 wine API,然后在我的 Controller 中访问 app.factory("Wine", function ($http){
我遇到了这段代码: var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($sc
我猜我遇到了成像错误。我不确定错误的根源。 注意:有时候工作顺利,我经常遇到这个错误。 表格:
我有两个任务要做: 1.) 创建一个算法来检测数组中是否有重复项(= 相同的数字)(它的运行时间越好,我得到的分数就越多)。 2.) 分析算法的运行时间。 这是我第一个任务的代码(我必须对数组进行排序
我正在使用 PHP 获取 JSON 数据,但在 ng-repeat 上出现错误: [ngRepeat:dupes] 转发器中不允许重复 我尝试过track by $index 但每次浏览器因 trac
我正在使用带自动完成功能的 ngTagsInput 指令。如果我没有两个具有相同“tag_token”属性的标签,一切正常。 这是我得到的回复: { "id": "100", "create_date
我可能在这里遗漏了一些明显的东西,但我认为这应该简单地循环我提供的 JSON。但是,我收到 ngRepeat:dupes 错误,指出 uid 未定义。如果我不通过 ID 进行跟踪,则会收到重复错误。尽
我已经放弃尝试解决这个问题,并在 Google 上寻求帮助。根据我收集的信息,AngularJs 对变量和函数有某种魔力。我读过,尽管你通常使用 Javascript 进行编程,但 AngularJS
这个问题已经有答案了: Error: [ngRepeat:dupes] what does this mean? (2 个回答) 已关闭 3 年前。 如何在 JavaScript 数组中输入连续的空值
我的情况与描述的相似here但是我使用 $http 调用来获取我的数据来构建一个无限滚动表,并得到: Error: [ngRepeat:dupes] Duplicates in a repeater
index.html: Search nav.html: {{ n }} {{ n }} service.js: angular .module('h
简要背景:- 我正在构建一个社交网站,并使用 MongoDB 存储状态和用户。例如,你有这样的状态 { "status" : "Hello world.", "profileURL"
嘿,我的 Angular 应用程序在重复数据方面遇到了问题。我已经将问题确定为精确的 ng-repeat,但我看不出它有什么问题。我收到一条错误消息,说我有重复数据,但我看不到它是如何发生的,因为我的
我正在学习 MEAN,遇到了 Angular 错误。我试图在表格中显示表单数据,但是数据没有通过,我收到的错误是: angular.js:11500 Error: [ngRepeat:dupes] h
我正在开发一个简单的待办事项应用程序,它将任务添加到现有的 json 数据数组中。然而,当我尝试添加多个任务时,我收到此错误:错误:[ngRepeat:dupes]。我一生都无法弄清楚出了什么问题。我
我试图让 $routeParams 不是未定义的,我不知道我做了什么,但出现了 ngRepeat:dupes 错误。我犯了什么错误?我想做: 我有这个网址:http://someadress.pl/t
我只是从数据库中获取数据并使用 ngRepeat 将其显示在 html 文件中。与数据库的连接成功,我可以向其中添加数据。此外,客户端上的所有内容都可以正常工作,因为我可以使用定义的数组在 ngRep
@Component({ selector: 'app-custom-paginator', template: '', }) export class CustomPagin
我是一名优秀的程序员,十分优秀!