项目未添加到集合中

时间:2014-02-16 12:05:40

标签: javascript angularjs

我有一个simpe控制器及其视图,我试图通过ng-click添加一个项目到集合,但我刚开始玩角度,我不明白为什么以下视图添加项目不起作用,但是我硬编了一些测试项目,它们显示得很好,我很感激你的帮助

<html data-ng-app>
  <body>
    <div data-ng-controller="ItemsController">
      name :        <input type="text" data-ng-model="newItem.name"/> 
      description : <input type="text" data-ng-model="newItem.description"/> 
      maintainer  : <input type="text" data-ng-model="newItem.maintainer"/> 
      <button data-ng-click="addNew(newItem)">Add</button>
      <ul>
        <li data-ng-repeat="item in items">{{item.name}}  {{item.description}}   {{item.maintainer}}</li>
      </ul>
    </div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.min.js"></script>
    <script type="text/javascript">
      function ItemsController ($scope) {
         $scope.items = 
        [{name:'x',description:"sss",maintainer:'me'},
        {name:'y',description:"aaa",maintainer:'me'}];

              var addNew = function(newItem)
              {
                  $scope.items.push(newItem);
              };
          }
        </script>
      </body>
    </html>

1 个答案:

答案 0 :(得分:3)

您需要将addNew函数添加到范围对象中。如果您更改:

var addNew = function(newItem)
{
    $scope.items.push(newItem);
};

进入

$scope.addNew = function(newItem)
{
    $scope.items.push(newItem);
};

你会发现它应该可以正常工作。