Ich beginne AngularJS $ Ressource zu lernen, und bemerkte, dass das $ Ressourcenobjekt einige Methoden (siehe unten für Beispiele) an meine vom Server heruntergeladenen Daten angehängt hat. Wie entferne ich diese Methoden und konvertiere das Objekt in ein reguläres (Array-) Objekt?
__proto__: Resource $delete: function (params, success, error) {$get: function (params, success, error) {$query: function (params, success, error) {$remove: function (params, success, error) {$save: function (params, success, error) {constructor: function Resource(value) {toJSON: function() {__proto__: Object
Zum Beispiel, ich versuche, eine POST-Anforderung einschließlich einiger Schlüsselwertdaten resource.save mit $ zu senden, aber diesem ‚Proto‘ Elemente im Array verursachen irgendwie die Daten „nicht definiert werden "wenn in der Fabrik an $ .param (Daten) übergeben wird. Ich könnte das gleiche mit $ http mit Leichtigkeit tun, aber wollen $ Ressource lernen. Vielen Dank!
Innerhalb eines Controllers
$scope.ok = function() {
$scope.entry = new calEntry();
$scope.entry.data = data // data is $resource object including _proto_ items
$scope.entry.$save(function(){
toaster.pop('success','Message','Update successfully completed.');
});
};
Fabrik
myApp.factory("calEntry",['$resource','$filter', function($resource, $filter) {
return $resource("/griddata/", {}, {
save: {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
transformRequest: function(data, headersGetter) {
return $.param(data); // data is undefined when it reaches here
}
}
});
}]);
Vielen Dank für Ihre Antwort. Ich habe versucht, $ scope.entry.data = data.toJSON() zu ändern, aber die _proto_-Eigenschaften sind immer noch da. Fehle ich etwas? –
angular.toJson (data) löscht die Eigenschaften und gibt eine einfache JSON-Zeichenfolge zurück. Vielen Dank. –