2015-04-19 2 views
0

HTML код:Удаление объекта из списка объектов JSON

<li ng-repeat="obj in objects">{{obj.name}} <a ng-click="remove($index)">x</a></li> 

JavaScript код:

$scope.remove = function(index){ 
    $scope.objects.splice(index, 1); 
} 

JSON данные:

{ 
    "0": { "name": "name1" }, 
    "1": { "name": "name2" } 
} 

Когда remove() называется, я получаю TypeError: $scope.objects.splice is not a function, здесь я знаю $scope.objects не массив, и поэтому splice() не будет работать.

Есть ли способ удалить выбранный индекс?

Заранее спасибо ...

+4

'delete $ scope.objects [index]' – adeneo

+0

Нужно больше кода для создания $ scope – MaxZoom

+0

Решение от @adeneo работало, но при удалении, похоже, есть еще одна проблема: http://jsfiddle.net/salvadorcs/9d8ztbpL/ –

ответ

4

Поскольку вы используете объект JSON, а не массив можно использовать нг-повтор, как этот

<li ng-repeat="(key,value) in objects">{{value.name}} <a ng-click="remove(key)">x</a></li> 

Так что метод удалить можно удалить текущий список элемент по ключу:

$scope.remove = function(key) { 
    delete $scope.objects[key]; 
} 

Адрес plunker.

$ index довольно запутанным в таких случаях, как это происходит, поскольку клавиши не являются.

Смежные вопросы