我怎么能在angularjs中的服务的两个function之间传递数据

我正在尝试创build一个多步表单,其中我做了两个不同的视图和两个不同的控制器,我试图将数据从视图1传递到在服务中定义的函数,然后试图在同一服务的另一个函数中访问这些数据。 以下是我写的服务:service.js

var EmployeeService = angular.module('EmployeeService',[]) .service('AddEmployee', function($resource){ var Employee = $resource('/api/meetups'); var emp_email=""; this.email = function(email){ var emp_email = email; return emp_email; }; this.personal = function(first_name){ var employee = new Employee(); employee.email = emp_email; employee.first_name = first_name; employee.$save(); }; }); 

我试图将email函数的emp_emailvariables存入个人函数。 但我不能这样做。 有没有什么办法可以在我的第二个函数中使用emp_emailvariables。

以下是使用服务的控制器:

 app.controller('mainCrl', ['$scope', '$resource', '$location', 'AddEmployee', function ($scope, $resource, $location, AddEmployee){ $scope.nextSection = function(){ $scope.email = AddEmployee.email($scope.employeeEmail); }; }]); app.controller('secondCrl', ['$scope', '$resource', '$location', 'AddEmployee', function ($scope, $resource, $location, AddEmployee){ $scope.secondSection = function(){ $scope.first_name = AddEmployee.personal($scope.first_name); }; }]); 

nextSection函数在用户填写邮件时触发并在下一部分触发,secondSection函数在用户在第二个视图中inputfirst_name并点击提交时执行。

如何在服务中的两个函数之间传递数据? 任何forms的帮助真的很感激!

代码的问题在于,您在电子邮件function中创build了第二个“emp_email”variables,因此您分配的电子邮件将转到电子邮件function中的本地emp_emailvariables,而不是在电子邮件function中的emp_emailvariables服务function。

所以删除var和更改

 this.email = function(email){ var emp_email = email; return emp_email; }; 

 this.email = function(email){ emp_email = email; return emp_email; }; 

这应该允许你在函数之间共享emp_emailvariables。

更换

 var emp_email = email; 

 return emp_email = email; 

(你修改本地variables)