服务和过滤器的依赖注入问题

时间:2019-04-11 20:54:16

标签: angularjs asp.net-mvc

我是angularjs的新手,并且已经基于angularjs教程创建了三个应用程序。

https://docs.angularjs.org/tutorial

应用为documentprofileAppmachineorderAppregionresourceApp。我已经为core文件夹中的每个文件夹设置了服务。核心文件夹中还有一个名为checkmark的过滤器。

要使用checkmark,请在应用程序模块中输入'core'作为依赖项。 如果要在checkmark中使用documentprofileApp,则必须将脚本引用添加到machineorderregionresource服务文件中,否则会出现注入错误。< / strong>

  

错误:[$ injector:modulerr] http://errors.angularjs.org/1.7.7/$injector/modulerr?p0=documentprofileApp&p1=%5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.7.7%2F%24injector%2Fmodulerr%3Fp0%3Dcore%26p1%3D%255B%2524injector%253Amodulerr%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.7.7%252F%2524injector%252Fmodulerr%253Fp0%253Dcore.machineorder..

documentprofileApp不使用这些服务,因此我不希望不必引用它们。

我的问题是,我应该在核心文件夹之外创建服务,还是在各种模块中如何引用依赖项方面设置不正确。

我没有引用“ core”作为依赖项,而是尝试引用“ core.checkmark”,类似于如何引用服务(core.document,core.machineorder等)。这不起作用。

我回到了该教程,并确保我理解并遵循他们在此处的设置方法。由于这是一个入门教程,可能只是出于其目的而简化了,我需要寻找其他资源来学习如何为多个应用程序设置项目。

文件夹结构:

FolderStructure

core.module:

 angular.module('core', [
 'core.document', 
 'core.organization', 
 'core.department', 
 'core.machineorder', 
 'core.regionresource', 
 'core.region']);

app.module:

 angular.module('documentprofileApp', [
     'ngAnimate',
     'ngRoute',
     'core',
     'documentDetail',
     'documentList'
 ]);

 angular.module('machineorderApp', [
     'ngAnimate',
     'ngRoute',
     'ngCookies',
     'thatisuday.dropzone',
     'machineorderDetail',
     'machineorderList'
 ]);

angular.module('regionresourceApp', [
     'ngAnimate',
     'ngRoute',
     'regionresourceDetail',
     'regionresourceList'
 ]);

document-list.module:

 angular.module('documentList', ['core.document']);

布局模板:

 <head>
     <title>Document Profiles</title>
     @Styles.Render("~/bundle/machineOrderFileCommonCss")
     @Scripts.Render("~/bundle/machineOrderFileCommonJs")
     @Scripts.Render("~/bundle/documentProfileJs")
     <script src="/app/core/machineorder/machineorder.module.js" type="text/javascript"></script>
     <script src="/app/core/machineorder/machineorder.service.js" type="text/javascript"></script>
     <script src="/app/core/regionresource/regionresource.module.js" type="text/javascript"></script>
     <script src="/app/core/regionresource/regionresource.service.js" type="text/javascript"></script>
 </head>
 <div ng-app="documentprofileApp">
     <div class="view-container">
         <div ng-view class="view-frame"></div>
     </div>
 </div>

捆绑包:

        bundles.Add(new ScriptBundle("~/bundle/machineOrderFileCommonJs").Include(
            "~/Scripts/common.js",
            "~/Scripts/angular.min.js",
            "~/Scripts/angular-animate.min.js",
            "~/Scripts/angular-resource.min.js",
            "~/Scripts/angular-route.js",
            "~/Scripts/angular-ui/ui-bootstrap-tpls.min.js",
            "~/Scripts/angular-messages.min.js",
            "~/app/app.module.js",
            "~/app/app.config.js",
            "~/app/core/core.module.js"
            ));

        bundles.Add(new ScriptBundle("~/bundle/machineOrderFileJs").Include(
            "~/Scripts/angular-cookies.min.js",
            "~/Code/FileManagement/dropzone.js",
            "~/Scripts/ng-dropzone.js",
            "~/app/core/machineorder/machineorder.module.js",
            "~/app/core/machineorder/machineorder.service.js",
            "~/app/machineorder-list/machineorder-list.module.js",
            "~/app/machineorder-list/machineorder-list.component.js",
            "~/app/machineorder-detail/machineorder-detail.module.js",
            "~/app/machineorder-detail/machineorder-detail.component.js"
            ));

        bundles.Add(new ScriptBundle("~/bundle/documentProfileJs").Include(
            "~/app/core/checkmark/checkmark.filter.js",
            "~/app/core/document/document.module.js",
            "~/app/core/document/document.service.js",
            "~/app/core/organization/organization.module.js",
            "~/app/core/organization/organization.service.js",
            "~/app/core/department/department.module.js",
            "~/app/core/department/department.service.js",
            "~/app/document-list/document-list.module.js",
            "~/app/document-list/document-list.component.js",
            "~/app/document-detail/document-detail.module.js",
            "~/app/document-detail/document-detail.component.js"
            ));

在此先感谢所有可以提供为何必须链接服务文件的见解的人。

1 个答案:

答案 0 :(得分:0)

您的错误消息解码如下:

  

由于以下原因,无法实例化模块documentprofileApp:   [$ injector:modulerr] http://errors.angularjs.org/1.7.7/$injector/modulerr?p0=c...

     

由于以下原因,无法实例化模块core:   [$ injector:modulerr] http://errors.angularjs.org/1.7.7/$injector/modulerr?p0=c...

     

由于以下原因,无法实例化模块core.machineorder:   {1}

模块无法加载的常见原因是您忘记了将文件包含在已定义的模块中,或者无法加载该文件。

您没有包含这些文件,或者模块未命名为"core.machineorder"