Angularjs ng-repeat 不显示列表中的重复值,只显示不同的值

Angularjs ng-repeat doesn't show duplicate values in the list, but only the different ones

此代码通过 ng-repeat 指令在列表中显示文本框的内容。 但我注意到它没有显示重复的字母。 仅当字母全部不同时才会显示这些字母。 例如,如果我在文本框中键入 abcabc,我只会在列表中看到一次 abc,而不是 abcabc 我怎样才能显示重复的字母? 谢谢。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app>
  <input type="text" ng-model="names">
  <ul>
    <li ng-repeat="x in names">
      {{ x }}
    </li>
  </ul>
</div>

每当出现这样的问题时,请务必检查控制台。你在那里得到错误,因为 AngularJS 期望所有值都是唯一的。但显然,他们不是。您可以使用 track by 为元素提供唯一标识符,在这种情况下,我使用 track by $index 让它们在字符串中使用它们的索引。

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app>
  <input type="text" ng-model="names">
  <ul>
    <li ng-repeat="x in names track by $index">
      {{ x }}
    </li>
  </ul>
</div>

你不能这样做,只是因为 ng-repeat 指令要求所有值都是唯一的。 使用 track by $index 提出的解决方案是最好的解决方法