Согласно http://victorsavkin.com/post/126514197956/dependency-injection-in-angular-1-and-angular-2, применение в масштабах всей службы могут быть добавлены к корневой инжектор, используя что-то вроде этого:Как получить доступ к компоненту Angular2, внедренному в компонент?
bootstrap(App, [UserService, LoginService]
И тогда можно обращаться в дочерних компонентов, как это:
class A {
constructor(userService: UserService) {
}
}
Однако результаты исключения, жалующиеся на параметры, не могут быть разрешены и предлагают убедиться, что они имеют правильный тип или аннотацию.
Каков правильный способ внедрения услуг прикладной программы и доступа к ним в дочерних компонентах?
Правильный синтаксис TS:. 'Конструктор (UserService: UserService)' (т.е. '(переменная типа)') – alexpods
@alexpods Спасибо, указав это и да, я это знаю. Извините, что я списал их с дискомфортом в вопросе. Но в моем коде бросается одно и то же исключение. Любые идеи почему? Я использую встроенный транспилер jspm и установил typescriptOptions: {"emitDecoratorMetadata": true, "experimentalDecorators": true} –
Вы ошибочно изменили 'UserService' на' Userervice'. Как насчет ошибки: try 'constructor (@Inject (UserService) userService: UserService)'. Если это работает, то ошибка, скорее всего, происходит в TS-> JS-транспиляции. – alexpods