Дочерний компонент передает параметр родительскому

#angular #angular6 #angular5 #angular7

#angular #angular6 #angular5 #angular7

Вопрос:

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

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

Комментарии:

1. Какой параметр вы хотите передать? Не могли бы вы сообщить нам более подробную информацию?

2. заголовок, событие кнопки, LayoutComponent включают функции возврата и сохранения редактирования

Ответ №1:

Я предполагаю, что у вас 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 .

Удачи!