【问题标题】:How to inject $scope in Angular Js Service如何在 Angular Js 服务中注入 $scope
【发布时间】:2016-10-01 23:12:40
【问题描述】:

对不起朋友,我在这里输入错误的代码并更正。 我正在尝试 $scope 在我的 Angular 服务中,但明显给出错误-

ReferenceError: $scope 未定义

这是我的服务代码-

 app.factory('fetchEmpService', function ( $scope,$http) {
        var editEmp = function (EID) {
                debugger;
                for (i in $scope.employees) {
                    if ($scope.employees[i].EmpId == EID) {
                        $scope.newemployee = {
                            EmpId: $scope.employees[i].EmpId,
                            Name: $scope.employees[i].Name,
                            Age: $scope.employees[i].Age,
                            City: $scope.employees[i].City,
                            Gender: $scope.employees[i].Gender
                        };
                    }
                }
            }


        return {
                editEmp:editEmp
               }

    }

在我的控制器中,我正在尝试使用这样的服务-

 $scope.EditEmployee = function (EID) {
            debugger;
            $scope.employees = fetchEmpService.editEmp(EID);
        }

我搜索了一下,发现我们不能像这样注入。但没有找到任何合适的解决方案。

【问题讨论】:

  • 你不会将 $scope 注入到服务中。
  • 好的,但是怎么做呢?
  • 您对服务的定义有.controller。您确定要粘贴的那个是正确的吗?
  • 不,aditya-singh 实际上它在我正在使用服务的主 js 文件中。
  • @RiteshGupta 我同意 Aditya。您有一个名为 editEmp 的函数,您在控制器中定义它 - 称为 EmpCtrl。要么您定义它们不正确,要么两者具有相同的名称。您需要澄清您正在尝试做什么或构建一个 plunkr,以便我们可以修补

标签: angularjs


【解决方案1】:

Refer this link for understanding how to pass parameters to service

我认为$scope.employees 是一组员工。

在服务中,您试图找出特定员工的详细信息并将该员工的详细信息返回给控制器。

如果这是您的要求,

那么,我想你很可能可以使用控制器访问$scope.employees

如果可以在控制器中使用,您可以将$scope.employees 作为参数传递给服务。

在服务内我们无法访问 $scope。

Refer this to find a particular employee details from a json array of employees

【讨论】:

    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 2014-09-19
    • 2016-08-06
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多