Используйте сервис в качестве провайдера в конфигурации, а также в качестве службы в контроллере - PullRequest
0 голосов
/ 24 октября 2018

Итак, у меня есть этот сервис:

var module = angular.module('app.shared.user', []);

module.service('userService', ['$q', '$http', 'firebaseService', function($q, $http, firebaseService) {
    this.isAdmin = undefined;
    this.userIdToken = undefined;
    let defered = $q.defer();
    this.promise = defered.promise;

    this.setIdToken = function (token) {
        this.userIdToken = token;
        defered.resolve(token);
        console.log("resolved in user service");
    };}])

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

Поэтому, когда setIdToken () вызывается в моем контроллере, мое обещание разрешается в одном случае.Но когда я жду его в моей конфигурации приложения, он никогда не разрешается (другой экземпляр службы, поэтому другой экземпляр переменных).

Поэтому моя цель состоит в том, чтобы использовать эту службу в качестве службы в моем контроллере, который вызывает метод, который разрешает обещание, объявленное в моем сервисе, и ожидает разрешения этого же обещания в конфигурации моего приложения.

Это то, что я также пробовал в конфигурации своего приложения, но безуспешно:

    function config(userService) {
            userService.promise.then(function (token) {
                console.log("token", token);
            });
        }

  config.$inject = ["userServiceProvider"];
  app.config(config);

Есть идеи?Заранее спасибо

...