Pregunta

Tengo dos funciones:Uno para eliminar datos y otro para actualizar datos.Los datos provienen de Resource.query().

Estoy usando ng-repeat para repasar cada elemento de la colección.Dado que cada elemento es un objeto de recurso, supongo que debería poder aplicar $save, $remove, ...operaciones.

El HTML podría ser tan simple como:

<tr ng-repeat="data in data_collection">
    <td>
        <a class="btn btn-info" ng-click="togglePublish(data,'country')">RELEASE</a>
    </td>
    <td>
        <div>
            <button class='btn btn-danger' ng-click="remove(data)">Delete</button>
        </div>
    </td>
</tr>

¿Por qué si lo hago?

// Arg: data is a Resource object from the collection
$scope.remove = function(data){
    data.$remove();       //  <-----   THIS DOES NOT MODIFY THE VIEW
}

Pero esto es actualizar correctamente los datos:

// Arg: original_data is a Resource object from collection 
$scope.togglePublish = function(original_data, country){

    // Deep copy
    var copy = angular.copy(original_data);

    // Modifications over the copy
    copy = toogleRegionPublication(copy, country);

    Resource().update(copy).$promise.then(function(){
        // If update was taken, then update view value
        original_data.regions = copy.regions;    // <---  THIS MODIFIES THE VIEW
    });
}

¿Por qué uno de ellos tiene algún efecto en la vista pero no el que involucra la operación $remove?¿Por qué?

¿Fue útil?

Solución

En lo que entiendo

$ eliminar

es solo un método de eliminación http que se llama a su recurso reparador.

Otros consejos

Para eliminar el data objeto de la vista, creo que puedes eliminarlo de la vista. data_collection formación. Vea cómo eliminar un objeto de una matriz.

Sin embargo, si aún necesita llamar http DELETE para eliminar eso data objeto de su base de datos o algo así, también deberá hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top