2013-05-20 53 views
0

在角我有以下工廠:

.factory('User', function($resource){ 
    return $resource(
     '/users',//URL 
     {},//Params defaults 
     { 
      'save': {method: 'POST', isArray: true } 
     }//Actions 
    ) ; 
}) 

在我控制我嘗試保存新的資源,像這樣:

$scope.newUser = new User() ; 

    $scope.newUser.name = $scope.newUserForm.name ; 
    $scope.newUser.email = $scope.newUserForm.email ; 

    $scope.newUser.$save() ; 

我得到一個數組從服務器返回尋找這樣的:

[ {ID:12, 用戶名: 「adfsdf」, 電子郵件: 「[email protected]」 } ]

但不知何故,我仍然可以和錯誤控制檯:

類型錯誤:對象#有沒有方法「推」

任何想法,我失去了一些東西?

感謝

+0

它看起來像來自服務器的響應是一個對象,而不是一個數組 - 你確定響應是[[ID:12,用戶名:「adfsdf」,電子郵件:「[email protected]」}] ? – joakimbl

回答

0

在我看來,你的用戶資源,在客戶端不是一個數組,這就是爲什麼它缺少推法。

'save': {method: 'POST', isArray: true } //<---- You say it is an array. 

$scope.newUser = new User() ; <-- create it 

$scope.newUser.name = $scope.newUserForm.name ; <--- put data into it 
$scope.newUser.email = $scope.newUserForm.email 

現在用戶的樣子:

{ 
    name:"somename", 
    email:"[email protected]" 
} 

所以它是沒有數組。當您的服務器響應時,角度會將答案推送到該「數組」中,但事實上,它不是數組。

所以我會建議離開「isArray:true」,因爲一個用戶不是一個數組。沒有用戶的集合。

我不知道,如何角度響應您的服務器響應,當它呈現陣列式,只是嘗試它。