2015-09-14 82 views
0

我嘗試在角度js項目中發佈數據表單$資源。這是我在工廠代碼

deletemenu: function(menudata) { 
      return $resource(url+'/menu/delete', {}, { 
        delete_menu: { 
          method: 'POST', 
          params: { 
           entityType : menudata.entityType , 
           sellerId  : menudata.sellerId , 
           menuId  : menudata.menuId , 
           parentMenuIds : menudata.parentMenuIds , 
           menuItemId : menudata.menuItemId 
          }, 
          isArray: false 
          } 
      }).deletemenu(); 
     } 

我宣佈POST方法,但該請求發送作爲查詢字符串不是POST請求。它發送爲

URL+"menu/delete?entityType=I&menuId=25&menuItemId=20&parentMenuIds=4&sellerId=1" 

我如何發送這些數據作爲POST方法。

回答

1

我認爲這應該工作更好地爲您

return $resource(url + '/menu/delete', null, { 
    delete_menu: {method: 'POST'} 
}).delete_menu(menudata); 

在這裏,我傳入menudata作爲第一個參數的非GET「階級」行動delete_menu將使用它作爲postData


$resource返回的對象比您在此處使用的要靈活得多。看起來您應該能夠通過返回$resource實例而不是這些單獨的函數來使您的服務/工廠更加整潔。例如

.factory('menuFactory', function($resource) { 
    var url = 'whatever'; 

    return $resource(url, null, { 
     delete: { 
      url: url + '/menu/delete', 
      method: 'POST' 
     } //, other actions here 
    }); 
}) 

然後你可以把它叫做

menuFactory.delete(menuData) 
+0

感謝菲爾這個解決方案爲我 –