2016-12-08 4 views
1

У меня есть два компонента в моем приложении Angular 2 - folder-selector.component.ts и home.component.ts. Эти компоненты работают вместе, чтобы отобразить древовидную структуру файловой системы - в основном, файловый браузер. Когда я нажимаю папку в древовидной структуре, вызывается функция с именем nodeSelect(event).Обнаруживать, когда функция вызывается в другом компоненте.

Как я могу уведомить home.component.ts, что nodeSelect(event) внутри folder-selector.component.ts был вызван? nodeSelect(event) выполняет некоторую логику, чтобы установить строковую переменную, которая мне нужна внутри home.component.ts - Я знаю, как ее получить, но я не знаю, как ее получить немедленно (когда вызывается nodeSelect(event)).

ответ

1

Для этого вы можете использовать EventEmitter. Что-то вроде этого:

class FolderSelectorComponent { 
    @Output() myEvent: EventEmitter<any> = new EventEmitter(); 
    nodeSelect() { 
     this.myEvent.emit('someStringValue'); 
    } 
} 

// Пример вашего родительского компонента Home

@Component({ 
     selector : 'home', 
     template : ` 
      <folder-selector (myEvent)="doSomething($event)"></folder-selector>`, 
     directives : [FolderSelector] 
    }) 
    class Home { 
     doSomething(evt) { } //Where evt is 'someStringValue' 
    } 
Смежные вопросы