2015-06-12 5 views
-1

У меня есть метод сериализации для сообщения, поэтому riskAssessmentKey не является частью $scope.topRiskDTO, но я передаю значение riskAssessmentKey от $scope.riskAssessmentDTO.riskAssessmentkey, и теперь я отправляю на фабрику, но когда я сохраняю все значения, отправляйте их, но riskAssessmentKey идет неопределенно, я не знаю, почему ..

до сих пор пытался код ....

parentCtrl.js

$scope.addTopRisk = function(){ 
       topRiskGridConfig.topRiskmodalWinConfig.title = 'Add top Risk'; 
       $scope.viewTopRiskWin.setOptions(topRiskGridConfig.topRiskmodalWinConfig); 
       $scope.$broadcast('addTopRisk',$scope.riskAssessmentDTO.riskAssessmentKey); 
      }; 

childCtrl.js

$scope.topRiskDTO = {}; 
    $scope.issuePltDataSource = kendoCustomDataSource.getDropDownDataSource('RA_KY_CNCRN_IS_PLTFM'); 
    $scope.$on('addTopRisk', function (s,id){ 
    $scope.riskAssessmentDTO.riskAssessmentKey = id; 
    $scope.viewTopRiskWin.open().center(); 
    $scope.submit = function(){ 
     rcsaAssessmentFactory.saveTopRisk($scope.topRiskDTO,id).then(function(){ 
     $scope.viewTopRiskWin.close(); 
     }); 
    }; 
    }); 

factory.js

var serializeTopRisk = function (topRisk,id) { 
      var riskAssessmentKey = id; 
      var objToReturn = { 
       topRiskName: topRisk.topRiskName, 
       mitigationActivityDes: topRisk.mitigationActivityDes, 
       issuePltfLookUpCode: topRisk.issuePltfLookUpCode, 
       issueNo: topRisk.issueNo, 
       riskAssessmentKey: topRisk.riskAssessmentKey 
      }; 

      if(topRisk.riskAssessmentKey){ 
      objToReturn.riskAssessmentKey = topRisk.riskAssessmentKey; 
      } 
      return objToReturn; 
     }; 
     saveTopRisk: function(topRisk,id) { 
         var request = serializeTopRisk(topRisk); 
         console.log('request payload', JSON.stringify(request)); 
         console.log('ID :: ', id); 
         var endpoint = 'app/assessment/rest/addTopRisks'; 
         return $http.post(endpoint, request); 


} 
+0

Когда и где в вашем коде происходит ошибка? Я понятия не имею, что вы хотите сказать. – zeroflagL

+0

, когда я выполняю метод saveTopRisk riskAssessmentKey не задан – aftab

+0

Не могли бы вы попытаться удалить все ненужные коды и создать плункер? – jantimon

ответ

2

Вы забыли передать идентификатор функции serializeTopRisk.

Таким образом, вы уже пройти Params правильно это так:

saveTopRisk: function(topRisk,id) { 
        var request = serializeTopRisk(topRisk); 

Но serializeTopRisk должен также получить идентификатор

var serializeTopRisk = function (topRisk, id) { // added the id over what you originally had 
      var riskAssessmentKey = $rootScope.riskAssessmentDTO.riskAssessmentKey; // drop this, use id instead 

Не используйте rootScope для передачи данных между фабрикой и контроллером если вам это не нужно (похоже, что вы уже передаете значения на завод с контроллера, поставив его объектными входами, сохраните его таким образом и исключите использование rootScope с фабрики).

+0

Спасибо, что помогли мне, я отредактировал мой код, что я реализовал в соответствии с вашим ответом, но в serialze метод param (id) не определен. Любая идея почему? – aftab

+0

, когда u вызывает rcsaAssessmentFactory.saveTopRisk ($ scope.topRiskDTO, id), вы передаете ему объект topRiskDTO и идентификатор. Определен ли этот идентификатор? вы передали его в saveTopRisk (он должен принимать topRisk и id). – orcaman

+0

Как вы можете видеть, я передаю его параметрам фабричного метода saveTopRisk (topRiskDTo, id), поэтому в заводском методе, если я отлаживаю его отображаемое значение id при вызове $ http, но метод serialize id не задан, я не получаю его. – aftab

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