当前位置: 首页 > 面试题库 >

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

孙项禹
2023-03-14
问题内容

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

<div class="idea item" ng-repeat="item in items" isoatom>    
    <div class="section comment clearfix" 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 int
        max = 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


问题答案:

该解决方案实际上在这里进行了描述: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



 类似资料:
  • 我定义了一个自定义过滤器,如下所示: 正如您所看到的,使用过滤器的ng repeat嵌套在另一个ng repeat中 过滤器的定义如下: 我得到: 错误:中继器中不允许重复。复读机:评论在item.comments|范围:1:2ngRepeatAction@https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/an

  • 问题内容: 尝试提交请求时出现此错误。 这是我的烧瓶代码。 还有我的index.html 编辑..我完整的烧瓶代码: 问题答案: 您正在发布到该函数,而您的函数侦听 另一条路线 ;它被注册为仅收听,而不是: 该路由不接受,默认情况下仅接受,并且被允许。 相应地调整表格: 考虑到瓶并 不会 重新加载源,除非你将调试:

  • 问题内容: 我正在使用Java,并且试图从某个http链接获取XML文档。我使用的代码是: 不要关注,它是一些特殊的类,就像常规输入流一样。 使用上面的代码,有时会出错。我认为这与xml格式错误有关,但我不知道如何解决。 问题答案: 我将我的评论转为答案,因此它可以被接受,并且这个问题不再悬而未决。 造成这种情况的最可能原因是格式错误的响应,其中包括在initial之前的字符。因此,请查看通过HT

  • 请检查输出。输出在这里 为什么我在这里得到这个错误“void”类型不允许?我想我把这段代码写对了吧?这个代码有什么问题吗?请帮我理解这个错误。

  • 我得到以下错误: "不允许使用复合类名" 尝试访问Web元素时,元素的类名之间有空格。Web元素的页面源如下所示。 我试图通过CSS路径找到元素,如下所示。但是这个元素是不可搜索的。 这是在链接中给出的解决方法,但仍然没有成功。你的帮助将不胜感激。

  • 问题内容: 我正在开发flask注册表格,但收到错误消息: 码: registration.html: 当我访问时,我收到错误消息。我究竟做错了什么? 问题答案: 这是因为在定义路由时仅允许POST请求。 当你在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。 使用 应该管用。