我收到此错误“Error: [$resource:badcfg] Error in resource configuration for action 'get'. Expected response to contain an object but got an array
”
我不知道如何解决它。我有这项服务
angular.module('messages').factory('Messages', ['$resource',
function ($resource) {
return $resource('api/messages/:username', {
username: '@username'
});
}]);
这在控制器中:
$scope.findOne = function () {
$scope.messages = Messages.get({
username: $routeParams.username
});
console.log($scope.messages);
};
对于这条路线我在API控制器中有这个
exports.read = function (req, res) {
res.json(req.message);
};
我知道我必须使用$ resource action isArray = true,但我不知道在哪里放它。我试着做这样的事情:
angular.module('messages').factory('Messages', ['$resource',
function ($resource) {
return $resource('api/messages/:username', {
username: '@username'
},
{'query': {method: 'GET', isArray: true}});
}]);
但没有结果,但仍然是同样的错误。
答案 0 :(得分:4)
在您的控制器中:
$scope.findOne = function () {
$scope.messages = Messages.query({
username: $routeParams.username
});
console.log($scope.messages);
};
query
而不是get
,应该解决它。
答案 1 :(得分:3)
使用Messages.query(...)代替方法get()
答案 2 :(得分:1)
您所做的是正确的,但您可以使用刚刚创建的方法('查询'),因此调用将如下所示:
$scope.findOne = function () {
Messages.query({
username: $routeParams.username
}).$promise.then(function (response) {
$scope.messages = response;
console.log($scope.messages);
});
};