Domanda

Ho due funzioni: una per eliminare i dati e un altro per aggiornare i dati.I dati provengono da una risorsa.Query ().

Sto usando ng-repeat per andare su ogni elemento nella raccolta.Dal momento che ogni elemento è un oggetto risorsa, immagino che dovrei essere in grado di applicare $ Salva, $ Rimuovi, ... Operazioni.

L'HTML potrebbe essere semplice come:

<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>
.

Perché se faccio:

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

Ma questo aggiorna correttamente i dati:

// 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
    });
}
.

Perché uno di loro sta avendo qualche effetto sulla vista ma non quello che coinvolge il funzionamento $ Rimuovi?Perché?

È stato utile?

Soluzione

per quanto ho capito

.

$ Rimuovi

è solo un metodo di cancellazione HTTP che chiama sulla risorsa riposante.

Altri suggerimenti

Per rimuovere l'oggetto data dalla vista Penso che puoi semplicemente rimuoverlo dall'array data_collection. Vedi come rimuovere l'oggetto da array.

Tuttavia, se è comunque necessario chiamare http DELETE per rimuovere quell'oggetto data dal tuo database o qualcosa del genere, è necessario farlo anche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top