Я пытаюсь настроить некоторые константы приложения с конечной точки http. Я не хочу (или нуждаюсь) сделать это с помощью ручной начальной загрузки (ala this). В идеале я хочу загрузить константы после входа пользователя. Поэтому я предполагаю, что мне нужно определить константы где-нибудь, где я могу запустить некоторый код (и использовать $ http). Но всякий раз, когда я определяю константу внутри контроллера или блока конфигурации, константа дает неизвестную ошибку поставщика, когда я передаю ее в другой модуль. Как только я перехожу к определению вне контроллера, он работает. Так, например, если у меня есть ...Можно ли определить константу angularjs внутри контроллера или блока конфигурации?
var app = angular.module('testApp',[]);
app.constant('test', 'test value');
то я могу передать, что в контроллер другого модуля, как это:
var app2 = angular.module('anotherModule',[testApp]);
app2.controller('TestCtrl', ['test',
function(test) {
console.log(test)`
}..
и это будет выход «тестовое значение», как можно было бы ожидать. Но если константа определена внутри блока кода, то, похоже, она не регистрируется как поставщик. Так, например:
var app = angular.module('testApp',[]);
app.controller('firstCtrl',function(){
app.constant('test', 'test value');
}
Если я запускаю страницу с этим контроллером, константа, кажется, зарегистрировать (в том смысле, что он указан в массиве _invokeQueue на модуле TestApp), но обслуживание инжектора не у вас есть провайдер, и я получаю неизвестный метод провайдера для него на anotherModule.
Первоначально я чувствовал, что фабрика или служба были излишними для того, что я пытался сделать, но, возможно, так я и должен идти. Но я также хотел бы понять, почему константа, определенная как это, не является инъекционной.
может объявить его как объект ... затем расширить объект – charlietfl
Module.constant является угловой концепцией, которая, кажется, идеально подходим для того, что я пытаюсь сделать, но я просто не могу заставить его быть инъекционным если я определяю его внутри блока кода. Я надеюсь на некоторое понимание того, что это такое и как я могу программным образом определить константу, которую можно вводить. – IrishDubGuy
Что вы пытаетесь сделать, определяя константу внутри контроллера? Постоянна ли зависимость от данных от контроллера? – bytebender