【问题标题】: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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-13
      • 2017-04-15
      • 2014-10-14
      • 1970-01-01
      相关资源
      最近更新 更多