如果ng模型没有更改,则无法使用ng click将项推送到javascript数组

如果ng模型没有更改,则无法使用ng click将项推送到javascript数组,javascript,angularjs,angular-ngmodel,Javascript,Angularjs,Angular Ngmodel,我能够通过ng click事件处理将项目(通过html输入)动态添加到未排序的列表中。每当我更改输入文本框值时,就会发生这种情况。但如果我单击add按钮而不更新textbox,则输入的textbox值不会添加到列表中 <body> <script> var app = angular.module("myShoppingList", []); app.controller("myCtrl", function($scope) {

我能够通过ng click事件处理将项目(通过html输入)动态添加到未排序的列表中。每当我更改输入文本框值时,就会发生这种情况。但如果我单击add按钮而不更新textbox,则输入的textbox值不会添加到列表中

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

    <div ng-app="myShoppingList" ng-controller="myCtrl">
      <ul>
        <li ng-repeat="x in products">{{x}}</li>
      </ul>
      <input ng-model="addMe">
      <button ng-click="addItem()">Add</button>
    </div>

    <p>Write in the input field to add items.</p>
</body>

var app=angular.module(“myShoppingList”,[]);
app.controller(“myCtrl”,函数($scope){
$scope.products=[“牛奶”、“面包”、“奶酪”];
$scope.addItem=函数(){
$scope.products.push($scope.addMe);
}    
});
  • {{x}
添加 在输入字段中写入以添加项目


您需要添加
跟踪$index
,如下所示
AngularJS
不允许在
ng repeat
指令中重复。如果您尝试这样做,您将得到错误

如果您想允许复制,您需要像下面这样更改代码

   <li ng-repeat="x in products track by $index">{{x}}</li>

  • {{x}
添加 在输入字段中写入以添加项目


非常感谢。它解决了我的问题。