在javascript中对数组使用ng-repeat时出现错误

Error coming up while using ng-repeat for a array in javascript

本文关键字:ng-repeat 错误 javascript 数组      更新时间:2023-09-26

我在运行代码时遇到了这个问题

<div ng-model="activeFilterCtrl.selectedfilters" ng-repeat="filters in activeFilterCtrl.selectedfilters" ng-model-options="{trackBy: '$value.params'}" flex>
      <md-button name="mylabel" ng-click="activeFilterCtrl.clearvalue()">{{filters.params}}</md-button>
</div>

我不断收到此错误。

 Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: filters in activeFilterCtrl.selectedfilters, Duplicate key: string:a, Duplicate value: a

请提供解决方案 以下是所选过滤器的值

selected filter value is [{"params":"min","value":5}, {"params":"max","value":30}]

试试这个

 ng-repeat="filters in activeFilterCtrl.selectedfilters track by $index"

试试这个演示链接

.HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <script>document.write('<base href="' + document.location + '" />');</script>
    <link href="style.css" rel="stylesheet" />
    <script data-semver="1.4.9" src="https://code.angularjs.org/1.4.9/angular.js" data-require="angular.js@1.4.x"></script>
    <script src="app.js"></script>
  </head>
  <body ng-app="plunker" ng-controller="MainCtrl as activeFilterCtrl">
  <div ng-model="activeFilterCtrl.selectedfilters" ng-repeat="filters in activeFilterCtrl.selectedfilters" ng-model-options="{trackBy: '$value.params'}" flex>
      <md-button name="mylabel" ng-click="activeFilterCtrl.clearvalue()">{{filters.params}}</md-button>
</div>
  </body>
</html>

.JS

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
  var vm = this;
  vm.selectedfilters = [{"params":"min","value":5}, {"params":"max","value":30}]
});