javascript - 将相同的项目添加到数组中

标签 javascript angularjs

    <!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
<body>

<script>
var app = angular.module("myShoppingList", []);
app.controller("myCtrl", function($scope) {
    $scope.products = ["Milk", "Bread", "Cheese"];
    $scope.addItem = function () {
        $scope.errortext = "";
        if (!$scope.addMe) {return;}

            $scope.products.push($scope.addMe);

    }
    $scope.removeItem = function (x) {
        $scope.errortext = "";
        $scope.products.splice(x, 1);
    }
});
</script>

<div ng-app="myShoppingList" ng-cloak ng-controller="myCtrl" class="w3-card-2 w3-margin" style="max-width:400px;">
  <header class="w3-container w3-light-grey w3-padding-16">
    <h3>My Shopping List</h3>
  </header>
  <ul class="w3-ul">
    <li ng-repeat="x in products" class="w3-padding-16">{{x}}<span ng-click="removeItem($index)" style="cursor:pointer;" class="w3-right w3-margin-right">×</span></li>
  </ul>
  <div class="w3-container w3-light-grey w3-padding-16">
    <div class="w3-row w3-margin-top">
      <div class="w3-col s10">
        <input placeholder="Add shopping items here" ng-model="addMe" class="w3-input w3-border w3-padding">
      </div>
      <div class="w3-col s2">
        <button ng-click="addItem()" class="w3-btn w3-padding w3-green">Add</button>
      </div>
    </div>
    <p class="w3-padding-left w3-text-red">{{errortext}}</p>
  </div>
</div>

</body>
</html>

我在 w3schools 中看到了这段代码,我的问题是,如果我尝试添加已在列表中的产品,但我想添加已在列表中的相同产品,则产品不会添加到列表或数组

最佳答案

这些值肯定会被插入数组,但是 ng-repeat 不允许重复,因此,您看不到 dom 的变化,请使用 track by $index 来允许重复

ng-repeat="x in products track by $index"

关于javascript - 将相同的项目添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38694125/

相关文章:

javascript - Google AdSense "Valuable Inventory: No Content",在主页上?

Javascript 表单验证。使用 onfocus 聚焦输入字段时如何消除错误

javascript - Emacs JavaScript 自动缩进

javascript - TypeScript - 如何从事件处理程序方法访问类实例

javascript - 对多维数组使用 Angular ng-repeat

javascript - 取消 HTML anchor 标记上的冒泡

javascript - AngularJS 单元测试时无法加载模块

javascript - JavaScript 中的 Scala `toMap`

javascript - 继承 angular1.x 中的 Controller

angularjs - 如果日期为 '0000-00-00' Angular 如何输出空字符串