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