Внедрение службы angularjs 1.5 в компонент - ошибка неизвестного поставщика - PullRequest
0 голосов
/ 24 марта 2019

Я хочу поделиться определенным свойством между разными компонентами (разными контроллерами в них).

Попытка внедрить службу, созданную мной в модуле приложения.Сервис имеет функции get / set.Я создал сервис под названием SharedProperties.Он недоступен ни для одного компонента моего приложения, говорит «Неизвестно».Почему?

Вот так определяется мое приложение, и вот очень простой сервис.

mapotApp = angular
.module('mapotApp', [])
.service('sharedProperties', function () {
        var property = 'test';
        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };
    });

, а затем в моем компоненте:

angular.module('aboutPage').component('aboutPage', {
    templateUrl: 'app/about-page/about-page.html',
    controller: ['sharedProperties', function AboutPageController($http, $scope, sharedProperties) {
    var self= this;

            //inherting global variable

        self.prop = sharedProperties.getProperty(); //UNKOWN PROVIDER ERROR HERE


    }]

});

Это возвращает:

Error: [$injector:unpr] Unknown provider: sharedPropertiesProvider <- sharedProperties

Что я могу сделать?Я пытался ввести его в тоннах мест и до сих пор не работает.Большое спасибо.

1 Ответ

0 голосов
/ 26 марта 2019

Вот рабочая ДЕМО с вашим кодом.

Ваш совместно используемый сервис корректен, но убедитесь, что он правильно инициализирует ваш контроллер, а также правильно вводит $http и $scope в него (см., Как сервисы $scope и $timeout вводятся в мойдемо).

...