javascript - 我如何在angularjs中的服务的两个功能之间传递数据

标签 javascript angularjs node.js

我正在尝试创建一个多步骤表单,其中我制作了两个不同的 View 和两个不同的 Controller 我试图将数据从 View 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();
    };
});

我正在尝试将电子邮件函数的 emp_email 变量访问到个人函数中。但我做不到。有什么方法可以在我的第二个函数中使用 emp_email 变量。

以下是使用服务的 Controller :

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 函数将在用户在第二个 View 中输入 first_name 并点击提交时执行。

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

最佳答案

您的代码的问题是您在电子邮件函数中创建了第二个“emp_email”变量,因此您分配的电子邮件将转到电子邮件函数中的本地 emp_email 变量,而不是 emp_email服务函数中的变量。

所以删除var并更改

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

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

这应该允许您在函数之间共享 emp_email 变量。

关于javascript - 我如何在angularjs中的服务的两个功能之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630310/

相关文章:

javascript - 在数组中查找模式

javascript - Sequelize : Foreign key declared, 但没有出现在表中

javascript - 浏览器可以处理多少个 DOM 元素

javascript - Angular js ui-router共享 Controller

javascript - 加载 ecmascript 模块(.mjs 文件)作为 Nodejs cli 的主入口

Heroku 上的 Node.js 子进程与单个 Dyno

javascript - 如何在新窗口中打开选择框中的链接?

angularjs - Angular JS 从工厂 AJAX 请求中保存信息

javascript - 链接选择框

node.js - 文件读取器:readAsArrayBuffer() 与 readAsBinaryString()