5

ng-resource のデフォルト メソッドに PUT を追加しようとしています。これまでのところ、DEFAULT_ACTIONS を次のように変更しました。

var DEFAULT_ACTIONS = {
      'get':    {method:'GET'},
      'save':   {method:'POST'},
      'update':   {method:'PUT'},
      'query':  {method:'GET', isArray:true},
      'remove': {method:'DELETE'},
      'delete': {method:'DELETE'}
    };

しかし、これは非常にハッキリしていて、モジュールを更新しても明らかに持続しません。更新を保持するすべての ng-resource オブジェクトに update/put を追加する方法はありますか?

4

4 に答える 4

6

私が見ることができる唯一の簡単な方法は、$resource のラッパーを作成することです。

module.factory('$myResource', ['$resource', function($resource){
  return function(url, paramDefaults, actions){
     var MY_ACTIONS = {
       'update':   {method:'PUT'}
     };
     actions = angular.extend({}, MY_ACTIONS , actions);
     return $resource(url, paramDefaults, actions);
  }
}]);
于 2014-01-05T16:46:31.553 に答える
2

アプリケーション構成関数で、次のように $resourceProvider をカスタマイズして、独自の http アクション パラメーターのセットを追加します。

    angular.module('app')
           .config(configureResourceProvider);

    function configureResourceProvider($resourceProvider){

    // Provide your own set of actions on $resource factory.
    // The following comments are Angular's default actions which are being
    // replaced by your customized set that includes a PUT method.
    //{ 'get':    {method:'GET'},
    //  'save':   {method:'POST'},
    //  'query':  {method:'GET', isArray:true},
    //  'remove': {method:'DELETE'},
    //  'delete': {method:'DELETE'} };

    $resourceProvider.defaults.actions = {
        create: {method: 'POST'},
        save:   {method: 'POST'},
        update: {method: 'PUT'},
        get:    {method: 'GET'},
        query:  {method: 'GET', isArray:true},
        remove: {method: 'DELETE'},
        delete: {method: 'DELETE'}
    };

    // Of course, you can customize other parameters too, like: 
    // Don't strip trailing slashes from calculated URLs
    $resourceProvider.defaults.stripTrailingSlashes = false;
}
于 2015-05-12T17:07:54.720 に答える