Angularjs绑定数组拼接

时间:2014-03-16 15:55:11

标签: arrays angularjs binding splice

我有一个拼接数组的问题:

我正在显示我的数组:

Email:<input type="text" ng-model="newcontact"/>
    <button ng-click="add(newcontact)">Add</button>
    <h2>Contacts</h2>

  <ul id="todo-list">
    <li ng-repeat="contact in contacts">

            <a href="#">{{contact.libelle}}</a>
            <a href="#" ng-click="del($index)">del</a>
    </li>
  </ul>

我的控制器是:

angular.module('angulartestApp')
  .controller('MainCtrl', function ($scope,$log) {
    var $scope.contacts = [{libelle:'test'},{libelle:'test2'}];

    $scope.add = function(newcontact) {
        $scope.contacts.push({libelle:newcontact});
        $scope.newcontact = '';
    };

    $scope.del = function (idx){
        $scope.contacts.splice(idx, 1);
        for (var i=0;i<$scope.contacts.length;i++)
        {
            $log.info($scope.contacts[i].libelle+',');
        }

    };

  });

如果我添加两个项目(&#39; a&#39;和&#39; b&#39;),我的视图会在列表中显示好项目(&#39; test&#39;,&#39; ; test2&#39;,&#39; a&#39;&#39; b&#39;)。

如果我删除&#39; a&#39; item,我的视图仅显示列表中的两个初始项目(&#39; test&#39;,&#39; test2&#39;)。 但是在控制台中一切都很好,测试&#39;测试2&#39;和&#39; b&#39;得到很好的展示。

我不明白为什么。如果有人能告诉我这样做的好方法......

谢谢。

1 个答案:

答案 0 :(得分:0)

单击del链接时是否重新加载页面?尝试使用按钮而不是验证。这也可能有所帮助:

href causes unintended page reload with Angularjs and Twitter Bootstrap