$ scope.push在Angular中输入相同的值后无法更新(bug!)

时间:2015-07-13 22:50:19

标签: javascript html angularjs model-view-controller

我是Angular的新手,我正在尝试一些功能。当我尝试重新输入相同的值时,我发现了这种奇怪的行为。

<!-- HTML -->
<body ng-app="angular-test">
  <div ng-controller="FormController">
    <ul>
        <li ng-repeat="name in names">{{name}}</li>
    </ul>
    <form ng-submit="addName()">
        <input type="text" ng-model="newName">
        <input type="submit" value="Add">
    </form>
  </div>
</body>

/*** Angular Code ***/
(function() {
var app = angular.module("angular-test", []);
  app.controller("FormController",formController);

    function formController($scope){
      $scope.names = ['Israel','Agyeman','Prempeh','Osei','Apea'];
      $scope.addName = function(){            
        $scope.names.push($scope.newName);
        $scope.newName = '';
    }
   }
})(angular);

![从HTML页面中的现有模型生成的列表] [1]

  • 以色列
  • Agyeman
  • Prempeh
  • Osei
  • Apea
  • King
  • ______________ [添加](输入表格)

“King”是通过添加按钮添加的,因此是“国王”但是当我再次输入“king”时它无法更新,无论我插入什么都不会更新。关于是什么导致这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

晚上以色列,

您无法在转发器中复制值。要使它工作,只需添加以下内容:

name in names track by $index

或者看到它的实际效果:http://codepen.io/anon/pen/xGzRKK

希望它有所帮助!