2015-04-30 130 views
0

我处于编辑状态,我正在尝试更新riskDto,但我收到有关某个对象的错误,我不知道我在做什么错误,请帮忙。如何将对象传递给AngularJS工厂?

代码试过到目前为止...

ctrl.js

RiskService.saveAllignRiskToProcess($scope.riskDTO,$stateParams.processKey).then(function (response) { 
      if ($scope.editMode) { 
       $scope.hideYesBtn = true; 
       $scope.hideNoBtn = true; 
       $scope.showOkBtn = true; 
       $scope.messageText = 'Updated Risk Within Process successfully'; 
       $scope.confirmationWin.open().center(); 
       $scope.okCallback = $scope.riskAlignToProcessBack; 
      } 
} 
}); 

facotry.js

saveAllignRiskToProcess: function(processKey) { 
     return $http.post('app/risk/rest/riskTocontrol/saveCreateAndAlignNewRiskToProcess/' + processKey); 
     } 

state.js

.state('createAndAlignRisk', { 
       url: '/risk/cnaRsk/:processKey', 
       templateUrl: 'views/risk/createNewRisk.html', 
       controller: 'RiskCtrl', 
       data: { 
        authenticate: true 
       } 

      }) 

consoleError

/riskTocontrol/saveCreateAndAlignNewRiskToProcess/[object%20Object] 
+0

processKey应该是一个对象或字符串? – dbarnes

+0

这是一个字符串。 – aftab

+0

riskDto是一个对象 – aftab

回答

1

如果你想通过这两个对象$scope.riskDTO$stateParams.processKey到服务,则您的服务方法需要与主叫方法码一起变化

代码

RiskService.saveAllignRiskToProcess($scope.riskDTO,$stateParams.processKey) 
.then(function (response) { 
    //..code here 
}); 

服务

saveAllignRiskToProcess: function(processKey, riskDTO) { 
    var url = 'app/risk/rest/riskTocontrol/saveCreateAndAlignNewRiskToProcess/' + processKey 
    return $http.post(url ,JSON.stringify({ 'serverSideParamName': riskDTO})); 
    } 
+0

我必须通过riskDTO将后端保存新信息到DTO对象 – aftab

+0

@aftab看看我的编辑,只有你应该用你的服务器端参数名替换'serverSideParamName' –

+0

好吧风险已经对齐,所以如果我已经在流程中编辑风险,我应该只是传递riskDTO对象,我相信。 – aftab

1

From angularjs doc

post(url,data,[config]);

数据 - 请求内容

数据参数是必要的,你可以从一个文档看看。你错过了:

saveAllignRiskToProcess: function(processKey) { 
     return $http.post('app/risk/rest/riskTocontrol/saveCreateAndAlignNewRiskToProcess/' + processKey); 
     }