我正在尝试从简单的电话簿应用中删除联系人。但是,当我调用deletePerson函数时,除了所需的联系人之外我删除了所有内容。请告诉我我的错误。
我的联系人部分:
<ul class="people-list">
<li showhideoptions ng-repeat="person in people | filter: search |
orderBy: 'name' | orderBy:'friend':true">
<h4>
<span ng-show="person.friend==true" class="icon-star icon-left"></span>
<span ng-show="person.friend==false" class="icon-user icon-left"></span>
{{person.name}}
<span ng-click="deletePerson($index)"
class="icon-remove pull-right"></span>
</h4>
</li>
</ul>
我的工厂主控制器:
var app = angular.module('contactList');
app.factory('simpleFactory', function(){
var people = [
{name: 'Collin', city: 'Omaha', friend: false},
{name: 'Alice', city: 'New York', friend: false},
{name: 'Pasha', city: 'Moscow', friend: true},
{name: 'Denis', city: 'St. Pete', friend: true}
];
var factory = {};
factory.getPeople = function() {
return people;
};
return factory;
});
app.controller('MainController', function ($scope, simpleFactory) {
$scope.people = [];
init();
function init() {
$scope.people = simpleFactory.getPeople();
}
$scope.addPerson = function() {
$scope.people.push(
{ name: $scope.newPerson.name,
city: $scope.newPerson.city,
friend: false
});
};
$scope.deletePerson = function($index) {
$scope.people.splice($index, 1);
}
});
UPD
我现在明白了过滤器
| filter: search | orderBy: 'name' | orderBy:'friend':true"
让我的删除过程变得疯狂。如果有人可以告诉我如何解决这个问题,我会很感激!
答案 0 :(得分:1)
您可以使用项目本身删除,例如
<强> HTML 强>
<span ng-click="deletePerson(person)"
class="icon-remove pull-right">
</span>
<强> JS 强>
$scope.deletePerson = function(item) {
$scope.people.splice($scope.people.indexOf(item), 1);
}