Дочерний компонент передает параметр в родительский - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу, чтобы NodeComponent передал параметр в LayoutComponent.

const routes: Routes = [{
    path: '',
    component: LayoutComponent,
    children: [{
      path: '',
      component: IndexComponent
    }, {
      path: 'node/:nodeId',
      component: NodeComponent
    }]
  }];

1 Ответ

1 голос
/ 19 апреля 2019

Я полагаю, что у вашего LayoutComponent есть заполнитель <router-outlet>, который будет служить вам соответствующим компонентом на основе маршрутизатора.

В этом случае вы не можете отправить @Output из NodeComponent в LayoutComponent, но вы можете легко обмениваться данными через service.

Создайте service, в котором будут храниться переменные / логика Node, и обновите данные из NodeComponent. Таким образом, LayoutComponent сможет прочитать его.

Пример:

@Injectable()
export class NodeService {

    // Feel free to define observables, other variables or object
    nodeTitle: string;
    nodeBtnEvent: Event;

    setNodeData(nodeTitle, event, ...){
        // Assign the variables or do something
    }     

    getNodeData() {
       return { 
           nodeTitle,
           nodeBtnEvent
       }
    }

    constructor() {}

}

Используйте метод установки для добавления данных из NodeComponent и метод получения для получения данных из LayoutComponent.

Удачи!

...