В Angular2 это можно инжектировать родитель или даже предок (например, бабушка и дедушка.) Компоненту к ребенку, просто используя следующий синтаксис:Как придать косвенный компонент предка в Angular2
export class Grandchild {
constructor(@Optional() @Host() @Inject(forwardRef(() => Ancestor)) ancestor)
}
однако, что кажется, работает только для предок-внучатые отношений, которые определены в одном шаблоне, как следующее:
<!-- App component template -->
<ancestor>
<foobar>
<grandchild></grandchild> <!-- injection works -->
</foobar>
</ancestor>
Если вместо этого наши шаблоны будет походить следующим образом, инъекция не будет работать:
<!-- App component template -->
<ancestor>
<foobar></foobar>
</ancestor>
<!-- Foobar component template -->
<grandchild></grandchild> <!-- injection doesn't work -->
Я сделал plunker для этого: http://plnkr.co/edit/D9iSokONIAFAS8G1NTd1
Я не думаю, что это поддерживается. –
Надеюсь, это не так, но если так, то я думаю, что я должен отправить отчет об ошибке в Angular2. –
Насколько я знаю, может быть введен только прямой родитель. Вы можете предоставить услугу у дедушки и бабушки, которые могут быть введены любым потомком. Я уверен, что отчет об ошибке лишний. –