Javascript 在angularjs中,如何在服务的两个函数之间传递数据

Javascript 在angularjs中,如何在服务的两个函数之间传递数据,javascript,angularjs,node.js,Javascript,Angularjs,Node.js,我试图创建一个多步骤表单,其中我创建了两个不同的视图和两个不同的控制器。我试图将数据从视图1传递到服务中定义的函数,然后尝试在同一服务的另一个函数中访问此数据。 以下是我编写的服务:service.js var EmployeeService = angular.module('EmployeeService',[]) .service('AddEmployee', function($resource){ var Employee = $resource('/api/meetups'

我试图创建一个多步骤表单,其中我创建了两个不同的视图和两个不同的控制器。我试图将数据从视图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_email变量访问到personal函数中。但我不能这样做。是否有任何方法可以在第二个函数中使用emp_电子邮件变量

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

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);
  };
}]);
当用户填写电子邮件并点击下一节时,将执行下一节功能;当用户在第二个视图中输入第一个_名称并点击提交时,将执行第二节功能

如何在服务中的两个函数之间传递数据?非常感谢您的任何帮助

更换

var emp_email = email;


(修改局部变量)

代码的问题是,您正在电子邮件函数中创建第二个“emp_电子邮件”变量,因此您要分配的电子邮件将被分配到电子邮件函数中的局部emp_电子邮件变量,而不是服务函数中的emp_电子邮件变量

因此,删除var并进行更改

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


这将允许您在函数之间共享emp_电子邮件变量。

没问题。这是一个很容易被忽视的微妙错误
this.email = function(email){
    var emp_email = email;
        return emp_email;
};
this.email = function(email){
    emp_email = email;
        return emp_email;
};