2014-06-20 56 views
2

我有一個工廠的服務,看起來是這樣的

app.factory('testService', ['$resource', function($resource){ 
    var test = $resource('/a/:action/:id/:subaction',{ 
    'getAll': {method: 'GET', params: {action: 'testAction'}} 
    } 
    return test; 
}]); 

,我從我的控制器

test.getAll({}, callback1); 
test.getAll({testParam: false}, callback2); 

做兩個調用該資源在這種情況下調用callback1沒有被觸發,callback2從兩個調用中獲取數據。

任何人都可以解釋這種行爲和正確的程序來做到這一點?

+0

什麼是testParam在第二次調用中的參數? –

+0

你試過了嗎:test.getAll({})。$ promise.then(callback1); ?? – M21B8

回答

0

Angular例如:

var User = $resource('/user/:userId', {userId:'@id'}); 
    User.get({userId:123}, function(user) { 
     user.abc = true; 
     user.$save(); 
    }); 

var User = $resource('/user/:userId', {userId:'@id'}); 
    User.get({userId:123}, function(u, getResponseHeaders){ 
     u.abc = true; 
     u.$save(function(u, putResponseHeaders) { 
     //u => saved user object 
     //putResponseHeaders => $http header getter 
     }); 
    }); 

值得一提的是,對於GET,查詢等方法的成功回調在來自服務器以及$ HTTP頭吸氣功能的響應獲取傳遞,所以一可以把上面的例子,可以訪問HTTP標頭爲:

我覺得you're重寫你的回調,但還是老樣子使得兩者的請求......

嘗試用承諾:

var User = $resource('/user/:userId', {userId:'@id'}); 
    User.get({userId:123}) 
     .$promise.then(function(user) { 
      $scope.user = user; 
     });