Проблема внедрения зависимости с сервисами и фильтром - PullRequest
0 голосов
/ 11 апреля 2019

Я новичок в angularjs и создал три приложения на основе учебника angularjs.

https://docs.angularjs.org/tutorial

Это приложения documentprofileApp, machineorderApp и regionresourceApp.Я установил службы для каждого из них, которые находятся в папке core.Также в основной папке находится фильтр с именем checkmark.

Чтобы использовать checkmark, вы вводите 'core' в качестве зависимости в app.module. Если я хочу использовать checkmark в documentprofileApp, я должен добавить ссылки на скрипты в файлы служб machineorder и regionresource, или я получаю ошибку внедрения.

Ошибка: [$ инжектор: 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.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 голосов
/ 12 апреля 2019

Ваше сообщение об ошибке расшифровывается следующим образом:

Не удалось создать экземпляр модуля documentprofileApp из-за: [$ injector: modulerr] http://errors.angularjs.org/1.7.7/$injector/modulerr?p0=c....

Не удалось создать экземпляр модуля core из-за: [$ инжектор: modulerr] http://errors.angularjs.org/1.7.7/$injector/modulerr?p0=c...

Не удалось создать экземпляр модуля core.machineorder из-за: {1}

Распространенная причина, по которой модуль не загружаетсяявляется то, что вы забыли включить файл с определенным модулем или файл не может быть загружен.

Либо вы не включили эти файлы, либо модуль не называется "core.machineorder".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...