Я читал ответы на подобные вопросы, но ни один из них не исправляет проблему, которую я вижу. Дано:ng-response save: ожидаемый ответ был объектом, получил массив
var app = angular.module("eg", ["ngResource", "postAPI"]);
var postAPI = angular.module("postAPI", ["ngResource"]);
postAPI.factory("Post", ["$resource",
function postFactory(resource) {
return resource("/post");
}
]);
postAPI.controller("PostIndexCtrl", ["$scope", "Post",
function($scope, Post) {
Post.query(function(data) {
$scope.response = data;
});
}
]);
postAPI.controller("CreateCtrl", ["$scope", "Post",
function($scope, Post) {
Post.save({
title: "Title",
body: "Body",
tags: ["one", "two", "three"],
});
}
]);
Ошибка получила (docs): «Ошибка в конфигурации ресурсов для действий save
Ожидаемого ответ содержит объект, но получила массив».
Что бы это было хорошо, за исключением того, что, насколько я могу видеть, мой backend делает возвращает один объект. Испытано с завитком:
curl -H "Content-Type: application/json" -X POST -d '{"title":"foo","body":"bar","tags":["wombat"]}' http://localhost:8080/post/
Ответ:
{"title":"foo","body":"bar","tags":["wombat"],"created":"...","modified":"...","id":12345}
(правки для краткости, такой же формат). PostIndexCtrl работает как ожидалось, возвращая массив пост-объектов. Любые подсказки относительно того, почему CreateCtrl может видеть массив, когда curl отлично работает?
Я очень ценю, что вы нашли время ответить. Фактически, я считаю, что 'isArray' по умолчанию имеет значение false для' $ resource.save' (только '$ resource.query' имеет' isArray: true'), но это была хорошая мысль, и мне было предложено пересмотреть мой внутренний код , что привело к исправлению. Благодаря! –