2016-10-05 2 views
0

В angular@injectable аннотированный класс и обычный простой машинописный текст, классы вводятся как угловые службы. Оба они впрыскивались и использовались на уровне модуля, а также на уровне компонентовВ чем разница между функцией Angular2 @Injectable и non-инъекцией

В чем разница?

В какой ситуации мы должны использовать класс @Injectable и в какой ситуации мы должны использовать обычный класс?

providers: [MyResourcesList] 

инъекционной декларация службы

@Injectable() 
export class WidgetResourcesList { } 

нормальной машинописи служба декларация

export class WidgetResourcesList { } 

ответ

0

С @Injectable() аннотация Присвоив услугу как инъекционные для других компонентов/услуг/трубы.

провайдеры: [] - контейнер зависимостей. Вы регистрируете свою инъекционную услугу в контейнере.

+0

Как вводить инъекционную услугу в компонент. Когда вы создаете переменную типа этого инъектируемого класса, я получаю ошибку в своем браузере (ее не ошибка машинописного текста) во время запуска приложения? –

+0

Вы могли бы дать образец? Используйте инъекцию конструктора. класс экспорта MyComponent {конструктор (частный виджет: WidgetResourcesList) {} method() {this.widget.foo()}} –