2016-05-16 2 views
0

У меня есть фабрика, которую я использую для обновления своих данных в моем сервисе отдыха. Если я жестко закодирую идентификатор в нем, обновления будут прекрасны, если я попытаюсь передать пареметр с помощью моего json-документа, json передается в сервис остального, но пареметр не передается на завод, поэтому мой restUrl не должным образом сгенерированный как отсутствующий itemId.Передача JSON и параметров на заводские контроллеры в Angularjs

завод:

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.'; 


    }); 

Am Я не проходя 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) - В интересах любого, кто может с этим бороться. –

Смежные вопросы