2016-12-02 116 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()」我從這個表格獲取全部數據。 我需要從我的工廠添加這些數據(這兩個變量)並在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 
     } 
    } 
    }}])