2015-03-20 3 views
0

У меня есть следующий код. Линия console.log(apiServerConstants.url) на заводе возвращает undefined, когда я добавляю AuthService в другой код. Зачем?Угловая конфигурация не работает

angular.module("webclient.constants", []) 
.constant("apiServerConstants", { 
    "url": "http://localhost:8080" 
}); 

angular.module('webclient', [ 
    // some stuff 
    'webclient.constants' 
    ]) 
    .config(
    // some code 
    }); 

angular.module('webclient') 
    .factory('AuthService', ['$http', 'apiServerConstants', 'localStorageService', function($http, localStorageService, apiServerConstants) { 

    return { 
     authenticate: function(data) { 
     // some code 
     }, 
     login: function(data, apiServerConstants) { 
     console.log(data); 
     console.log(apiServerConstants.url); 
     // some more code 
     } 
    } 
}]); 
+3

Возможно, потому, что вы вызываете 'login' только с одним аргументом. – zeroflagL

+0

Имеет смысл. Поскольку я возвращаю объект, а не результат функции, вызывающий элемент 'login()' должен передать его, или я удаляю из params по причинам сферы. – alphadogg

+1

Я предполагаю, что сигнатура функции должна быть 'login: function (data) {', потому что у вас уже есть 'apiServerConstants'. – zeroflagL

ответ

1

Вы перевернули свои инъекции.

['$http', 'apiServerConstants', 'localStorageService', function($http, localStorageService, apiServerConstants) должен быть ['$http', 'localStorageService', 'apiServerConstants', function($http, localStorageService, apiServerConstants)

EDIT:

И почему apiServerConstants параметр login? Попробуйте следующее:

login: function(data) { 
    console.log(apiServerConstants.url); 
} 
+0

Goof catch, но после перевертывания я все равно получаю 'undefined' для' apiServerConstants'. – alphadogg

+0

см. Отредактированный ответ – jlowcs

+0

Да, два сложных вопроса, которые я просто не видел. Благодаря! – alphadogg

Смежные вопросы