2015-04-01 76 views
2

我得到這個錯誤「Error: [$resource:badcfg] Error in resource configuration for action 'get'. Expected response to contain an object but got an array期望的迴應包含一個對象,但得到了GET行動

一個數組,我不知道如何解決它。我有這樣的服務

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

我知道,我必須使用$資源行動IsArray的= true,但我不知道該把它放在哪裏。我試圖做這樣的事情:

angular.module('messages').factory('Messages', ['$resource', 
    function ($resource) { 
     return $resource('api/messages/:username', { 
      username: '@username' 
     }, 
      {'query': {method: 'GET', isArray: true}}); 
    }]); 

但沒有結果,仍然是同樣的錯誤。

+1

化妝IsArray的假 – Anita 2015-04-01 13:56:20

+0

沒錯@Anita'{ '查詢':{方法: 'GET',IsArray的:假}});'作爲響應是一個對象不是一個數組。 – 2015-04-01 13:57:28

回答

4

在你的控制器:

$scope.findOne = function() { 
     $scope.messages = Messages.query({ 
      username: $routeParams.username 
     }); 

     console.log($scope.messages); 
    }; 

query相反的get,應該解決這個問題。

3

使用Messages.query(...)而不是get()方法

1

你的所作所爲是正確的,但你必須使用你剛剛創建的方法(「查詢」),因此呼叫看起來像這樣:

$scope.findOne = function() { 
    Messages.query({ 
     username: $routeParams.username 
    }).$promise.then(function (response) { 
     $scope.messages = response; 
     console.log($scope.messages); 
    }); 

}; 
相關問題