2016-12-02 6 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-view에 있습니다. 간단한 고객 텍스트 입력 (이름, 성 등)이 있습니다 "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 
     } 
    } 
    }}])