2016-12-02 9 views
-1

私のコードに問題があります。工場にデータを保存し、コントローラ内のデータを取得します

これは私の工場コードです:

.factory('shareDataService', function() { 
    var sharedData = {}; 

    sharedData.shareData = function(dateFrom, dateTo) { 
     var from = dateFrom; 
     var to = dateTo; 
     alert(from + to); 
    }; 
    return sharedData; 
}) 

そして、これは私のコントローラです:

.controller('getFormDataCtrl', ['$rootScope','$scope', '$http', 'shareDataService', function ($rootScope,$scope, $http, shareDataService) { 
    $scope.getFromBase = function() { 
    shareDataService.shareData($scope.dateFrom, $scope.dateTo)  
    } 

    $scope.bookingFormSubmit = function(){ 
    var array = { 
     "from": ''// i want put dateFrom HERE, 
     "to": '',// i want put dateTo HERE 
     "yacht": $rootScope.yacht_id, 
     "customer": { 
      "fistname": $scope.firstname, 
      "lastname": $scope.lastname, 
      "birthday": $scope.birthday, 
      "phone": $scope.phone, 
      "email": $scope.email, 
      "country": $scope.country, 
      "city": $scope.city 
     } 
    } 
    }}]) 

このページでは、Symfony2の上に構築されます。私たちはsumfony2フォームを使用します。 最初のフォームの顧客は、からのおよびを選択します。ボタン「getFromBase()」があります

このデータを後で使用する場所に保存します。

別のフォームは別のUIビューにあります。 シンプルな顧客のテキスト入力(名前、姓など)があります 「bookingFormSubmit()」をクリックすると、このフォームからすべてのデータを取得します。 私は自分の工場(この2つの変数)からこのデータを追加し、Jsonでオブジェクトを作成する必要があります。

答えて

0

このサービスの実際のデータは、あまりにもプライベートです。スコープを少し広げてアクセサを用意する必要があります。

サービス

.factory('shareDataService', function() { 
    var sharedData = {}; 
    var from, to; 

    sharedData.getSharedData = function() 
    { 
     return {from: from, to: to}; 
    }; 

    sharedData.shareData = function(dateFrom, dateTo) { 
     from = dateFrom; 
     to = dateTo; 
    }; 

    return sharedData; 
}) 

使用

.controller('getFormDataCtrl', ['$rootScope','$scope', '$http', 'shareDataService', function ($rootScope,$scope, $http, shareDataService) { 
    $scope.getFromBase = function() { 
    shareDataService.shareData($scope.dateFrom, $scope.dateTo)  
    } 

    //NEW 
    var data = shareDataService.getSharedData; 

    $scope.bookingFormSubmit = function(){ 
    var array = { 
     "from": data.from, //NEW 
     "to": data.to,  //NEW 
     "yacht": $rootScope.yacht_id, 
     "customer": { 
      "fistname": $scope.firstname, 
      "lastname": $scope.lastname, 
      "birthday": $scope.birthday, 
      "phone": $scope.phone, 
      "email": $scope.email, 
      "country": $scope.country, 
      "city": $scope.city 
     } 
    } 
    }}]) 
関連する問題