Angular ng-repeat错误“不允许在转发器中重复”

【字号: 日期:2024-04-07浏览:22作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决Angular ng-repeat错误“不允许在转发器中重复”?

该解决方案实际上在这里进行了描述:http ://www.anujgakhar.com/2013/06/15/duplicates-in-a-repeater-are-not-allowed-in-angularjs/

AngularJS不允许在ng-repeat指令中重复。这意味着,如果您尝试执行以下操作,将会收到错误消息。

// This code throws the error 'Duplicates in a repeater are not allowed.// Repeater: row in [1,1,1] key: number:1'<div ng-repeat='row in [1,1,1]'>

但是,稍微更改上面的代码以定义一个索引来确定唯一性,如下所示,它将使它再次工作。

// This will work<div ng-repeat='row in [1,1,1] track by $index'>

官方文档在这里:https ://docs.angularjs.org/error/ngRepeat/dupes

解决方法

我正在定义一个自定义过滤器,如下所示:

<div ng-repeat='item in items' isoatom><div ng-repeat='comment in item.comments | range:1:2'>.... </div></div>

如您所见,使用过滤器的ng-repeat嵌套在另一个ng-repeat中

过滤器的定义如下:

myapp.filter(’range’,function() { return function(input,min,max) {min = parseInt(min); //Make string input intmax = parseInt(max);for (var i=min; i<max; i++) input.push(i);return input; };});

我越来越:

错误:不允许在转发器中重复。中继器:在item.comments中发表评论| 范围:1:2 ngRepeatAction @https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/an

相关文章: