将数据保存在工厂中,将数据保存在控制器中
问题描述:
我的代码存在问题。将数据保存在工厂中,将数据保存在控制器中
这是我的工厂代码:
.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
}
}
}}])