Sto utilizzando $resource
per recuperare i dati dal server utilizzando la query. Il server restituisce una matrice di oggetti, che memorizzo in stuklijst. Posso inviare il contenuto (aggiornato) di stuklijst al server eseguendo il looping della matrice e utilizzando $ save per inviare ogni elemento dell'array al server. Ora desidero inviare tutti gli elementi (l'intero stuklijst) al server in una volta sola, senza utilizzare il ciclo.
Quando si prova un $ save su stuklijst, Angular genera un errore "destination.push is not a function". Come può essere realizzato con $resource
?
Ecco il codice:
Servizio:
var stukModule = angular.module('stuklijstServices', ['ngResource'])
stukModule.factory('Stuklijsten', function($resource){
return $resource('rest/stuklijsten/:stuklijstID', {});
});
Controller:
//Get the data from server
$scope.stuklijst = Stuklijsten.query({stuklijstID: $routeParams.stuklijstID});
//See below for sample of data returned by server
//Users can update the data and request a save using saveStuklijst
//Send them back to server (using saveStuklijst(Stuklijst))
$scope.saveStuklijst = function(lijst) {
//sending items from stuklijst one by one :
for(var i = 0; i < lijst.length; i++)
{// console.log(i);
// console.dir(lijst[i]);
lijst[i].RowID = i
f = new Stuklijsten(lijst[i]);
f.$save({stuklijstID: $routeParams.stuklijstID});
} ;
};
dati restituiti dal server e memorizzati in Stuklijst:
[{"Name":"K FlxMT in DG met diameter 025 cm","LineType":0,"ProdID":"DG025KFLXMT","RowID":7,"Unit":"stk","Quantity":1},{"Name":"SPR Fl in DG met diameter 025 cm","LineType":0,"ProdID":"DG025SPRFL","RowID":8,"Unit":"stk","Quantity":1},{"Name":"T FlxFl in DG met diameter 025 cm","LineType":0,"ProdID":"DG025TFLXFL","RowID":9,"Unit":"stk","Quantity":0},{"Name":"VER PL EX in DG met diameter 025 cm","LineType":0,"ProdID":"DG025VERPLEX","RowID":10,"Unit":"stk","Quantity":0},{"Name":"K FlxMT in PV met diameter 008 cm","LineType":0,"ProdID":"PV008KFLXMT","RowID":11,"Unit":"stk","Quantity":0}]
Ancora non trovato un modo per rinviare l'array di array in una volta al server utilizzando $ resource. Dopo alcune ulteriori indagini sono stato in grado di farlo utilizzando $ http. Tuttavia, in tal caso, la bellezza dell'utilizzo di un servizio REST si perde nel processo ... – thomasc