2016-01-22 91 views
0

我使用Angular的$資源與API接口,並在該資源上創建自定義方法。其中一種方法是POST,當我嘗試使用它時,它將發送整個資源,而不僅僅是我試圖發佈到API的屬性。我不認爲這是$資源服務的預期行爲,但是,我可能會錯過一些東西。

下面的代碼:

服務:

angular.module('adminApp') 
    .factory('Framework', function($resource) { 
    return $resource('/api/frameworks/:id', {id: '@id'}, { 
     'update': { 
     method: 'PUT' 
     }, 
     'getRequiredLicenses': { 
     method: 'GET', 
     url: '/api/frameworks/:id/required_licenses', 
     isArray: true 
     }, 
     'addRequiredLicenses': { 
     method: 'POST', 
     url: '/api/frameworks/:id/required_licenses' 
     }, 
     'removeRequiredLicense': { 
     method: 'DELETE', 
     url: '/api/frameworks/:id/required_licenses/:license_id' 
     } 
    }); 
    }); 

當我打電話吧:

scope.addLicensesToFramework = function() { 
    scope.framework.$addRequiredLicenses(null, { 
    required_licenses: Object.keys(scope.selectedLicenses) // returns an array of ints 
    }); 
} 

(請注意,這是一個指令scope.framework是實例。框架資源)

當這個請求被髮送時,這裏是什麼有效載荷中包含:

我的目的是隻能傳遞{'required_licenses': [12345,1236]}在有效載荷,而我似乎無法弄清楚它爲什麼發送整個資源的機構。 (實際上,根本沒有發送,只有原始資源)

任何洞察將是非常有益的,謝謝!

回答

0

嘗試調用它像這樣:

scope.addLicensesToFramework = function() { 
    scope.framework.$addRequiredLicenses({ 
    required_licenses: Object.keys(scope.selectedLicenses), 
    id: 1234 
    }, function(resp){ console.log(resp) }); 
} 

也注意到,我包含在參數對象的ID ..你可能需要這一點。

相關問題