Javascript 未知提供程序:membershipServiceProvider<;-会员服务<;-angularjs依赖项注入中的membershipController错误

Javascript 未知提供程序:membershipServiceProvider<;-会员服务<;-angularjs依赖项注入中的membershipController错误,javascript,angularjs,angularjs-service,modularity,Javascript,Angularjs,Angularjs Service,Modularity,我能够从一个javascript文件运行代码。但当我想将服务分离到一个单独的文件中(在customServices文件夹中)时,它给出了一个注入器错误:-未知提供程序。当调试器放置在my membershipService.js中时-它被命中,但仍然抛出错误 类似地,我无法单独路由到另一个文件。它给出了同样的错误 文件夹结构:- 公开的 控制者 1.app.js 海关服务 1.membershipService.js 观点 1.membershipdetails.html 2.index.htm

我能够从一个javascript文件运行代码。但当我想将服务分离到一个单独的文件中(在customServices文件夹中)时,它给出了一个注入器错误:-未知提供程序。当调试器放置在my membershipService.js中时-它被命中,但仍然抛出错误

类似地,我无法单独路由到另一个文件。它给出了同样的错误

文件夹结构:-

公开的 控制者 1.app.js

海关服务 1.membershipService.js

观点 1.membershipdetails.html 2.index.html

Index.html代码:-

 <head>
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="stylesheets/style.css" rel="stylesheet">
<script 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"> 
</script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular- 
route.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular- 
resource.js"></script>
<script src="CustomServices/membershipService.js"></script>
<script src="ngRoute/viewroute.js" type="text/javascript"></script>
<script src="controllers/app.js"></script>
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>

</head>
<div>
<div class="container pt-5">
    <div ng-view></div>
</div>
</div>
注意:-它一直工作到这里。但一旦我将服务代码移动到不同的文件,如开始文件夹结构所示,它就会给出未知的提供者错误

我的服务代码-我在哪里得到错误:-

 var app = angular.module("tdmModule", ["ngRoute"]);


    app.service("membershipService", function 
   ($location,$rootScope,$http,$filter,$cookies,$timeout,$document,$window) 
   {
this.jsondata = function(getdata){
    var d = {};
    console.log("Service calling " +getdata);

    if(getdata != undefined && getdata.TopN != undefined){
            d.TopN = getdata.TopN;
    }
    if(getdata != undefined && getdata.MemberNo != undefined){
        d.MemberNo = getdata.MemberNo;
    }

         if(getdata != undefined &&getdata.MemberStartDateHigh !=undefined){
        d.MemberStartDateHigh = getdata.MemberStartDateHigh;
    }

    return d;
};
 });
我经历过 1. $注入器/取消注入器 2. 3. 4.

我想我遗漏了一些概念上的东西。为了可读性,一些代码被故意删除


我对服务注入的概念是它是一个简单的js文件,可以注入到应用程序中的任何控制器中,并根据应用程序使用。它也需要用正确的文件夹结构注册

我在Plunk中添加了您的代码以查看发生了什么

首先,您的示例中缺少了大量的
}
,这使得您的示例无法编译

然后,当我解决这个问题时,它抱怨了
setnotanoption
compileservice
,您在
membershipController
中将其定义为依赖项。 您的示例中没有提供这些实例

当移除这些时,一切正常

注意:我将角度模块称为
angular.module(“tdmModule”)


plunker.

在angularjs引导之前,您是否也在html文档中包含了新文件(通过标记)?包含在index.html中。在
getdata.MemberStartDateHigh上出现语法错误之后,我将其包括在内=未定义
。也许你在减少问题的时候会把这个问题放大?语法错误已纠正@tshI.module(“tdmModule”).service(“membershipService”---。它未按预期工作。错误:$injector:nomodule不可用模块“tdmModule”不可用!您可能拼错了模块名称或忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。错误:[$injector:unpr]也发生了。无论如何,感谢您的响应和概念:)@mank91好的,不要在主文件中定义var app=angular.module(“tdmModule”)。在angular.module()上一直使用angular.module(“tdmModule”).config等。谢谢主席先生的跟进。我在主文件app.js中尝试了相同的方法。删除了app变量并放置了angular.module(“tdmModule”)。仍然出现相同的错误。@mank91您是否可以更改加载脚本的顺序,您可以在其中定义角度。模块(“tdmModule”,“ngRoute”])应在相关脚本之前加载
 var app = angular.module("tdmModule", ["ngRoute"]);


    app.service("membershipService", function 
   ($location,$rootScope,$http,$filter,$cookies,$timeout,$document,$window) 
   {
this.jsondata = function(getdata){
    var d = {};
    console.log("Service calling " +getdata);

    if(getdata != undefined && getdata.TopN != undefined){
            d.TopN = getdata.TopN;
    }
    if(getdata != undefined && getdata.MemberNo != undefined){
        d.MemberNo = getdata.MemberNo;
    }

         if(getdata != undefined &&getdata.MemberStartDateHigh !=undefined){
        d.MemberStartDateHigh = getdata.MemberStartDateHigh;
    }

    return d;
};
 });