2016-12-02 115 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 
     } 
    } 
    }}])