Я пытаюсь реорганизовать существующий Угловой проект для использования ES6-модулей и import
операторов. Это работает для большинства приложений, но блоки resolve
на моих маршрутах дают мне проблемы.AngularJS: route.resolve in ES6
Насколько я могу сказать, синтаксис должен быть таким же, как и раньше:
$stateProvider.state('stateName'), {
template: <div></div>
controller: 'stateCtrl'
controllerAs: 'ctrl'
resolve: {
someData: ['DataService', function(DataService){
return DataService.getData();
}]
}
}
Однако установив точку останова в someData
говорит мне, что мой «DataService» не решена должным образом путем инъекции углам главного зависимости (или, скорее, : он разрешен правильно, но еще не инициализирован). Сервис регистрируется в соответствующем модуле, но его конструктор не вызывался до ввода функции someData
.
Поскольку я думал, что я получил синтаксис неправильно, я немного экспериментировал и обнаружил, что некоторые другие Службы (созданные с тем же синтаксисом и зарегистрированные в том же модуле, что и DataService
) фактически инициализированы и правильно введены в блок разрешений ,
У вас есть идеи, где искать или как я могу устранить эту проблему?
Хорошо, но мне все еще нужен массив с строковым идентификатором, чтобы сделать это безопасным для минимизации, не так ли? Вышеизложенное является еще одним синтаксисом для функции (Dataservice) {return Dataservice.getData();} ' –
А хорошо мы используем/* @ngInject */Я обновлю ответ – rrd
Спасибо - я взгляну на ng -annotate! :) Между тем, я понял, что забыл включить вложенную зависимость «DataService», поэтому он не смог получить экземпляр. Синтаксис, показанный выше, отлично работает! –