C# 当我将js文件放在一个包中时,找不到它

C# 当我将js文件放在一个包中时,找不到它,c#,.net,angularjs,asp.net-mvc,C#,.net,Angularjs,Asp.net Mvc,在my_Layout.cshtml中的当前设置中,我有一个标准的脚本标记,其中包含一些类似angularjs文件的文件路径 <script src="~/Scripts/angularjs/Controller/MyController.js"></script>...(plus a few more) bundles.Add(new ScriptBundle("~/Scripts").Include( "~/angularjs/Factory/authServic

在my_Layout.cshtml中的当前设置中,我有一个标准的脚本标记,其中包含一些类似angularjs文件的文件路径

<script src="~/Scripts/angularjs/Controller/MyController.js"></script>...(plus a few more)
 bundles.Add(new ScriptBundle("~/Scripts").Include(
 "~/angularjs/Factory/authService.js",
"~/angularjs/Controller/MyController.js"));
万事俱备。但是,当我运行它时,浏览器控制台窗口给我一个角度错误,表示它找不到我的authService.js文件。官方的错误如下

未捕获错误:[$injector:unpr]$injector/unpr?p0=authServiceProvider%20%3C-%20authService

所以我的问题是,为什么捆绑脚本时,它看不到authService文件。请记住,如果我显式地调用它,我的角度和网页工作良好,没有错误。(我还搞乱了我在捆绑包中给他们打电话的顺序,我仍然无法让网页正常工作)

任何帮助都将不胜感激

编辑:提供一点角度代码,这是我的服务

(function () {

    var authService = function ($http, $q, localStorageService) {
    /*bunch of code*/
 };

    var module = angular.module("mainApp");

    module.factory("authService", authService);



}());
因此,我做了以下更改,但仍然会收到相同的错误以及“~Scripts/angularjs”的web浏览器中的另一个错误,响应为403错误

(function () {

    var module = angular.module("mainApp");

    module.factory("authService", authService);

    authService.$inject("$http", "$q", "localStorageService");

    var authService = function ($http, $q, localStorageService) {
/*my code*/
};
}());
最终解决方案: 为了澄清,我将发布我所做的,以使其工作。正如@Tommaso Sebastianelli所指出的,关键是要在[]中传递行module.factory上的依赖项。非常感谢您的及时回复

(function () {

    var authService = function ($http, $q, localStorageService) {
/*my code here*/

 };
    var module = angular.module("mainApp");

    module.factory("authService", ["$http", "$q","localStorageService", authService]);

}());

在angular服务中是否可能有非显式依赖项注入?例如:

yourapp.service('authService', function(dependancy1, dependancy2, etc){

});
这种错误在最小化和绑定模块时发生过很多次。 如果是这种情况,请按如下方式修复代码:

yourapp.service('authService', ['dependancy1', 'dependancy2', '...',
   function (dependancy1, dependancy2, etc){

}]);
最佳选项

yourapp.service('authService', authService);

authService.$inject = ['dependency1', 'dependency2', '...'];

function authService(){
//code here
}

错误并不是说找不到authservice.js文件,而是说Angular找不到
authservice
。我通过将捆绑包的名称从“~/Scripts”更改为“~/Angular/Scripts”修复了403错误。原因是前者是实际路径。