Ошибка: [$ injector: unpr] Неизвестный поставщик - при переносе AngularJS1 в Angular6 - PullRequest
2 голосов
/ 09 октября 2019

Я пытаюсь обновить компоненты, написанные на AngularJS1 до Angular6 . Я использую подход обёртывания для всех существующих компонентов AngularJS1, расширяя « UpgradeComponent », помещенный в папку «directive-wrappers» в моем примере.

при загрузке приложенияЯ получаю ошибку консоли как

Error: [$injector:unpr] Unknown provider: testDirective2DirectiveProvider <- testDirective2Directive
https://errors.angularjs.org/1.7.8/$injector/unpr?p0=testDirective2DirectiveProvider%20%3C-%20testDirective2Directive
    at eval (angular.js:138)
    at eval (angular.js:4924)
    at Object.getService [as get] (angular.js:5084)
    at eval (angular.js:4929)
    at Object.getService [as get] (angular.js:5084)
    at Function.UpgradeHelper.getDirective (upgrade_helper.ts:56)
    at new UpgradeHelper (upgrade_helper.ts:52)
    at TestDirective2Wrapper.UpgradeComponent (upgrade_component.ts:106)
    at new TestDirective2Wrapper (TestDirective2Wrapper.ts:27)
    at createClass (provider.ts:265) "<app-root _nghost-c0="">"

enter image description here

Чтобы имитировать то же самое приложение онлайн, я создал те же самые директивы angularjs и их оболочки в stackblitz

1 Ответ

0 голосов
/ 09 октября 2019

Существует проблема с файлом docsSampleDirective.js.

Вы инициализировали модуль AngularJS во второй раз, когда уже инициализировали testApp модуль в файле app.module.js. Просто избавьтесь от массива зависимостей оттуда:

angular
  .module("testApp")
  .controller("Controller", [
    "$scope",
    function($scope) {
      $scope.customer = {
        name: "Naomi",
        address: "1600 Amphitheatre"
      };
    }
  ])
  .directive("docsSimpleDirective", function() {
    return {
      template: "Name: {{customer.name}} Address: {{customer.address}}"
    };
  });

Вот вам Рабочий пример StackBlitz для вашей ссылки.

...