Угловой доступ провайдера в пользовательском интерфейсе маршрутизатора - PullRequest
0 голосов
/ 25 апреля 2018

Я попытался изменить service на provider, чтобы получить доступ config фаза.provider находится в другом модуле.

var app = angular.module('ops.services');

app.constant('opsConstants', {
    GID: 'UA1'
});

app.provider('OpsConstantService', OpsConstantService);

OpsConstantService.$inject = ['opsConstants'];

function OpsConstantService(opsConstants) {
    return {
        $get:function() {
            return {
                OPSCONSTANTS : opsInsightConstants,
            }
        }
    }
}

My app module зависит от того же самого, и было предоставлено DI .

var opsApp = angular.module('opsApp', ['ui.router',  'ops.services', 'angular-momentjs']);

И теперь, В моем приложении routing Мне нужно получить доступ к значению констант.

opsApp.config(routerConfig);

routerConfig.$inject = ['$stateProvider', '$urlRouterProvider','OpsConstantServiceProvider'];

function routerConfig($stateProvider, $urlRouterProvider,OpsConstantServiceProvider) {
    $urlRouterProvider.otherwise("/home/dashboard/");

    $stateProvider
        .state('Modal', {
            url: .....

Но если я попытаюсь войти OpsConstantServiceProvider.OPSCONSTANTS, оно не определено.

Почему так?

Что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2018

Это работает:

function OpsConstantService(opsConstants) {
    return {
        OPSCONSTANTS : opsInsightConstants,
        $get:function() {
            return {
                // something
            }
        }
    }
}

app.config(['OpsConstantServiceProvider', function(OpsConstantServiceProvider) {
  console.log(OpsConstantServiceProvider.OPSCONSTANTS);
}]);

Но это не хорошо) На самом деле, что вы пытаетесь сделать? Собрать константы и создать один большой объект? Тогда вы можете сделать это:

app.constant('test1', {test: 1});
app.constant('test2', {test: 2});
app.constant('test3', {test: 3});
app.constant('commons', {});

app.config(['test1', 'test2', 'test3', 'commons', function(test1, test2, test3, commons) {
  commons.test1 = test1;
  commons.test2 = test2;
  commons.test3 = test3;
}]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...