【问题标题】:Angularjs ng-repeat doesn't show duplicate values in the list, but only the different onesAngularjs ng-repeat 不在列表中显示重复值,而只显示不同的值
【发布时间】:2021-02-06 00:14:01
【问题描述】:
此代码通过 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
angularjs-directive
angularjs-ng-repeat
html-lists
【解决方案1】:
你不能这样做,因为 ng-repeat 指令要求所有值都是唯一的。
使用 track by $index 提出的解决方案是最好的解决方法
【解决方案2】:
每当出现这种情况时,请务必检查控制台。你会在那里得到错误,因为 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>