2016-05-16 3 views
1

Я не вижу примера о том, как использовать выполнение того, что делает хост (вводя родительскую ссылку в дочерний элемент) в ES6.Angular2, как использовать @Host на компонентах ES6

@Component({ ... }) 
class PlayButton { 
    constructor(@Host() playerService: PlayerService) { 

    } 
} 

Любая идея о том, как мы могли бы достичь этого?

ответ

0

Существует переменная Host, которая может использоваться с любыми директивами. Не обязательно, если есть @Host decorator. Также, если вам нужно вставить какую-либо услугу, вы можете использовать providers в декораторе компонентов.

вы можете посмотреть в Angular API для справки.

Для реализации хоста вы можете взглянуть на реализацию Attribute Directives.

Update

вы можете попробовать ContentChildren декоратора.

@Directive({ 
    selector: 'someDir' 
}) 
class SomeDir { 
    @ContentChildren(ChildDirective) contentChildren: QueryList<ChildDirective>; 
    ngAfterContentInit() { 
    // contentChildren is set 
    } 
} 

Для справки вы можете проверить Angular API

Надеются, что это помогает.

+0

Thx. Я не хочу использовать директивы для компонента, чтобы получить ссылку на тот же компонент. Я просто пытаюсь получить доступ к родительскому компоненту моего компонента. Я хочу сообщить ему, когда что-то происходит у ребенка. Кроме того, я не могу заставить родителя прослушивать событие на дочерних элементах непосредственно на шаблоне, поскольку шаблон определяется пользователем (используя ng-content). – Emanuel

+0

@Emanuel: Обновленный ответ, вы можете попробовать контент для детей. –