2016-05-16 124 views
0

我有一個工廠用於更新我的休息服務中的數據。如果我硬編碼id在它的更新就好了,如果我試圖通過我的json文件paremeter,json傳遞給其餘服務,但paremeter沒有被傳遞到工廠,所以我的restUrl不正確地生成爲缺少itemId。從Angularjs中的控制器傳遞JSON和參數到工廠

廠:

angular.module('myApp') 
    .factory('updateItem', function ($resource) { 

     return $resource('http://someserviceUrl/items/:itemId', {}, { 
     update: {method: 'PUT', params: {itemId: '@itemId'}} 
     }); 


    }); 

控制器:

$scope.itemId = 21; 
    var itemData = {"orderItem": {"itemHdr": { 
      "itemId": "", 
      "itemDescription":"Item Description", 
      "typeCd": "someType", 
      "salesPgm":"thisProgram", 
      "onSale": true 
     } 
}; 

    updateRfp.update($scope.itemData,$scope.itemId) 
    .$promise.then(function(res) { 
    console.log('updateItem.update triggered!'); 
    $scope.results = 'Item '+ res.code + ' has been saved.'; 


    }); 

我不能正確地傳遞的itemId?我讀過的文檔顯示了在控制器和工廠之間傳遞變量的這種方法,但是當您執行json和參數的組合時,它不會顯示如何執行它。

回答

1

Angular docs

// Now call update passing in the ID first then the object you are updating 
Notes.update({ id:$id }, note); 

所以看起來你應該通過ID作爲對象,並交換參數

+0

是啊,我的東西轉身。感謝您指出了這一點! :)所以,我的更新現在看起來像這樣 - updateRfp.update({itemId:$ scope.itemId},$ scope.itemData) - 爲了任何其他人可能正在努力的好處。 –

相關問題