2016-01-19 2 views
1

Я пытаюсь добавить preloader в мое приложение angular2, но я застрял и не могу найти ответ в Интернете.Как выполнить метод другого компонента в Angular2

Я добавляю компонент preloader в основное приложение и создается экземпляр. Теперь я пытаюсь изменить свое свойство в компоненте preloader, введя класс в основное приложение и выполнив метод show(). Но как только я вставляю класс preloader, я вижу, что инициируется другой экземпляр моего preloader, поэтому выполнение метода не изменяет свойство отображаемого компонента.

Я создал this plunker, чтобы вы могли видеть мою проблему.

+0

SO вопросы должны содержать существенные части коды, связанную с вопросом, так что вопрос остается ценный для будущих посетителей когда ссылка сломана, как это часто бывает со ссылками. –

+1

Мы хотим видеть код при рассмотрении вопроса. Внешних ссылок недостаточно. Если вы хотите увеличить свои шансы получить хороший ответ, пожалуйста, следуйте приведенным советам. – joepd

+0

Хорошо. Я обновлю свой вопрос позже :) – Heiko

ответ

1

Если вы хотите глобальную службу (Singleton) только добавить его в bootstrap(AppComponent, [MySingletonService]), но не добавлять его в другом месте, как @Component({providers: [...]})

В вашем случае это не достаточно, потому что вы хотите получить доступ к компоненту, синглтон, как объяснено выше работает только на услуги.

Вы можете использовать промежуточную службу или шину событий и общаться с помощью таких событий, как описано в Angular2 emit event up to the DOM tree

+0

Это похоже также очень похоже на ваш вопрос http://stackoverflow.com/questions/34572539/how-to-make-a-component-universally-accessible-in-angular2/34572894# 34572894 –

Смежные вопросы