Я пытаюсь создать приложение с угловым 2, я хочу передать данные из компонента в другой компонент, который является родным или без отношения, Я искал это и читать некоторые документы, и я понимаю, что это возможно с созданием класса наблюдаемым, но не знаю, как это возможно ... У меня есть тег и хочу, когда пользователь нажимал на них, получает значение атрибута фильтра данных, и я хочу отправить это значение к другому компоненту и выполнить функцию ... я использую EventEmitter для дочернего к родительскому, но для этой проблемы не работает. это правда или нет? Если правда, как ?! спасибо.как передать данные другому компоненту с созданием класса наблюдаемого
ответ
Вам нужно создать общую службу для этого:
export class SharedService {
subject$:Subject = new Subject();
}
Эта услуга должна быть общим для обоих компонентов. Для того, чтобы убедиться, что вы можете установить его, когда развернув приложение:
bootstrap(AppComponent, [ SharedService ]);
Обратите внимание, что этот провайдер не должен быть указан в атрибуте компонентов providers
.
Вот компонент, в котором инициируется событие:
@Component({
(...)
template: `
<div (click)="onClick()"></div>
`
})
export class Comp1 {
constructor(private service:SharedService) {}
onClick() {
this.service.subject$.next('a value');
}
}
И компонент, который принимает значение:
@Component({
(...)
})
export class Comp2 {
constructor(private service:SharedService) {
this.service.subject$.subscribe(value => {
// Data received
});
}
}
tnx для ответа ... но я пытаюсь это, но его не сработало ... Компоненты moust имеют какое-либо отношение? child или parent? его возможно без какого-либо отношения? –
Добро пожаловать! Никакие компоненты не должны иметь отношения к использованию такого подхода. Что вы подразумеваете под словом «его не сработало»? ;-) –
Ключевой вопрос здесь - поделиться одним и тем же экземпляром. Поэтому укажите эту службу при начальной загрузке, но не в атрибуте 'providers' компонентов. См. Эту ссылку для получения дополнительной информации: https://angular.io/docs/ts/latest/cookbook/component-communication.html –
- 1. React - передать переменную другому компоненту
- 2. Java: передать событие другому компоненту
- 3. Как передать переменную класса stateName другому компоненту в реакции
- 4. Как передать данные дочернему компоненту?
- 5. Как передать данные компоненту с помощью Angular2
- 6. Angular2 передает данные API другому компоненту
- 7. vuejs v2.0 передать данные компоненту
- 8. reactJs - передать данные вложенного компоненту
- 9. Как передать данные из экземпляра Vue компоненту
- 10. Ember.js: Как передать параметры от одного компонента к другому компоненту?
- 11. Как передать опоры другому компоненту на карте Javascript?
- 12. Как передать атрибут Observable компоненту в Angular2?
- 13. Ember.js как передать компонент другому компоненту в качестве параметра?
- 14. Как передать значения другому компоненту в React-Native-Router-Flux?
- 15. Как передать значения из одного класса другому?
- 16. Как передать данные другому компоненту с помощью реагировать на нативный навигатор
- 17. передать значение состояния в качестве реквизита другому компоненту es6
- 18. Как передать состояние компоненту?
- 19. Angular2 - передать данные ASYNC дочернему компоненту
- 20. Реакция: Можно ли передать компонент другому компоненту через реквизит?
- 21. React Native - Возможно ли передать компонент в реквизитах другому компоненту?
- 22. Как передать значения другому методу класса
- 23. Невозможно передать реагировать компонент в качестве атрибута к другому компоненту
- 24. Как передать данные из одного фрагмента другому?
- 25. Как передать данные другому диспетчеру просмотра?
- 26. Как передать данные списка другому методу
- 27. Как передать переменную дочернему компоненту?
- 28. Как передать данные из одного фрагмента другому?
- 29. Как передать данные в классе другому члену?
- 30. Как передать атрибуты композитному компоненту
См https://angular.io/docs/ts/latest/ cookbook/component-communication.html #! # двунаправленный-сервис –