2015-01-28 3 views
0

У меня есть $scope.inventories, который содержит запасы, которые я могу выбрать. Я хочу удалить выбранный элемент из inventories, когда что-то выбрано, но этого не происходит.Элемент не удаляется из коллекции с .splice (index, 1)

Вот код:

$scope.select = (inventory, index) -> 
    url   = '/tasks/select_inventory' 
    inventory_id = inventory.id 
    $http(
     method: 'POST' 
     url: url 
     params: { task_id: task_id, inventory_id: inventory_id } 
    ).success((data, status) -> 
     $scope.selected_inventories.push inventory 
     $scope.inventories.splice(index, 1) 
     return true 
    ).error (data, status) -> 
     alert('failed') 
     return 

Модель инвентаризации

angular.module('orwapp').factory 'Inventory', ['$resource', ($resource) -> 

    Inventory = $resource "/api/v1/inventories/:id", 
         { id: "@id" } 

    return Inventory 
] 

В API Rails возвращает @task в формате JSON. Это нормально? render json: @task

Почему не $scope.inventories.splice(index, 1) Работает должным образом?

+0

Насколько я могу судить, этот код _should_ работа. Вы используете $ scope.apply() правильно обновить что вы видите, если вы 'console.log ($ scope.inventories)' сразу после вас? .splice' it? –

+0

@ DanielMa, это sais: [Ресурс, Ресурс, Ресурс, Ресурс, $ обещают: Обещают, $ resolved: true] 0: Resource1: Resource2: Resource3: Resource $ prom: Promise $ resolved: truelength: 4__proto__: Array [0] – martins

+0

Является ли $ scope.inventories массивом или ключом? –

ответ

0

Является ли это опечатка, выглядит как дополнительные открытыми скобки «(» перед передачей данных

).success((data, status) ->