Javascript 在工厂保存数据,在控制器中获取数据

Javascript 在工厂保存数据,在控制器中获取数据,javascript,angularjs,controller,factory,Javascript,Angularjs,Controller,Factory,我的代码有问题 这是我的工厂代码: .factory('shareDataService', function() { var sharedData = {}; sharedData.shareData = function(dateFrom, dateTo) { var from = dateFrom; var to = dateTo; alert(from + to); }; return sharedData

我的代码有问题

这是我的工厂代码:

.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创建一个对象

该服务中的实际数据有点过于私有。您需要稍微扩展范围并提供一个访问器

服务

.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
        }
    }
  }}])
用法

.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
        }
    }
  }}])