Ошибка углового ng-repeat «Дубликаты в ретрансляторе не допускаются».

Я определяю собственный фильтр следующим образом:

....

Как вы видите, 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" 

Однако, слегка изменив приведенный выше код, чтобы определить индекс для определения уникальности, как показано ниже, он снова будет работать.

 // This will work 

Официальные документы находятся здесь: https://docs.angularjs.org/error/ngRepeat/dupes

Для тех, кто ожидает JSON и по-прежнему получает ту же ошибку, убедитесь, что вы анализируете свои данные:

 $scope.customers = JSON.parse(data) 

У меня возникла проблема в моем проекте, где я использовал ng-repeat track по индексу $ index, но продукты не отражались, когда данные поступают из базы данных. Мой код выглядит следующим образом:

 

В приведенном выше коде продукт представляет собой отдельную директиву для отображения продукта. Но я узнал, что $ index вызывает проблему, когда мы передаем данные из области. Таким образом, потери данных и DOM не могут быть обновлены.

Я нашел решение, используя product.id как ключ в ng-repeat, как показано ниже:

 

Но вышеприведенный код снова терпит неудачу и выдает ошибку ниже, когда более одного продукта имеет один и тот же идентификатор:

angular.js: 11706 Ошибка: [ngRepeat: dupes] Дубликаты в ретрансляторе не разрешены. Используйте выражение «track by» для указания уникальных ключей. повторитель

Поэтому, наконец, я решил проблему, создав динамический уникальный ключ ng-repeat, как показано ниже:

 

Это решило мою проблему и надеюсь, что это поможет вам в будущем.

Что вы намерены делать для своего фильтра диапазона?

Вот пример того, что я пытаюсь сделать: http://jsfiddle.net/evictor/hz4Ep/

HTML:

 
Item {{$index}}
Comment {{$index}} {{comment}}

JS:

 angular.module('manyminds', [], function() {}).filter('range', function() { return function(input, min, max) { var range = []; min = parseInt(min); //Make string input int max = parseInt(max); for (var i=min; i<=max; i++) input[i] && range.push(input[i]); return range; }; }); function MainCtrl($scope) { $scope.items = [ { comments: [ 'comment 0 in item 0', 'comment 1 in item 0' ] }, { comments: [ 'comment 0 in item 1', 'comment 1 in item 1', 'comment 2 in item 1', 'comment 3 in item 1' ] } ]; } 

Если случайно эта ошибка возникает при работе с SharePoint 2010: переименуйте расширения .json и обязательно обновите свой путь restService. Никакой дополнительной «дорожки по индексу» не требуется.

К счастью, я был перенаправлен на эту ссылку :

.json становится важным типом файла в SP2010. SP2010 включает в себя сертификаты конечных точек webservice. Расположение этих файлов – папка 14hive \ isapi. Расширением этих файлов являются .json. Именно по этой причине она дает такую ​​ошибку.

«заботится только о том, что содержимое json-файла json – не расширение его файла»

После изменения расширений файлов все должно быть установлено.

На всякий случай это случается с кем-то другим, я документирую это здесь, я получаю эту ошибку, потому что я ошибочно установил ng-модель так же, как и массив ng-repeat:

   

Вместо:

  

Я проверил массив и не имел дубликатов, просто дважды проверьте переменные.

Дубликаты в ретрансляторе не допускаются. Используйте выражение «track by» для указания уникальных ключей.

 Repeater: {0}, Duplicate key: {1}, Duplicate value: {2} 

пример

         
First Name Last Name
{{person.firstName}} {{person.lastName}}

{{person1.firstName}} {{person1.lastName}}
{{sayHello()}}

попробуй это

 $http({ method: 'GET', url: url, // your remote url responseType: "json" }). then(function successCallback(response) { //your code when success }, function errorCallback(response) { //your code when fails }); 

Если вы вызываете ng-repeat в теге

    , вы можете разрешить дубликаты. См. Эту ссылку для справки. См. Todo2.html

Мой ответ JSON был таким:

 {"items":  [   { "index": 1, "name": "Samantha", "rarity": "Scarborough", "email": "[email protected]" },   { "index": 2, "name": "Amanda", "rarity": "Vick", "email": "[email protected]" }] } 

Итак, я использовал ng-repeat = "item in variables.items" чтобы отобразить его.

Дубликаты в ретрансляторе не допускаются. Используйте выражение «track by» для указания уникальных ключей. Повторитель: sdetail in mydt, Дублирующий ключ: строка:, Дублирующее значение:

Я столкнулся с этой ошибкой, потому что я написал неправильное имя базы данных в моей php api part ……

Таким образом, эта ошибка может также возникать, когда вы извлекаете данные из базы данных, чье имя написано вами некорректно.

Interesting Posts

Как отменить диалог, например «Активность», когда он коснулся за пределами windows?

Windows 10, VPN и медленный поиск в DNS

Ограничение ввода JTextField для целых чисел

Как заменить патчи для проводника Windows с помощью классического текстового поля полного пути?

Вызывающий stream должен быть STA, потому что многие компоненты пользовательского интерфейса требуют этого

Сделать ссылку в браузере Android запустите мое приложение?

Как создать элемент управления браузером браузера Explorer?

Предотвратите запуск iTunes, когда iPhone подключен к Mac

Как исправить: обработчик «PageHandlerFactory-Integrated» имеет плохой модуль «ManagedPipelineHandler» в своем списке модhive

Регулярное выражение для ссылок на YouTube

Каков наилучший способ поместить c-struct в NSArray?

Могу ли я LINQ JSON?

Как заставить детей StackPanel заполнить максимальное пространство вниз?

Есть ли способ получить «защищенный» элемент другого объекта из производного типа?

как создать составной первичный ключ (аннотация java persistence)

Давайте будем гением компьютера.