Angular: получение данных от ребенка без события

Хорошие решения для этого, которые я видел, включают использование GridBagLayout (как отмечено выше) или MiGLayout , хотя, поскольку последний не является частью стандартного Java, он должен быть загружен и помещается на путь класса перед использованием. MiGLayout не так сложно использовать.

0
задан karen 1 March 2019 в 14:14
поделиться

3 ответа

Из того, что я понял после прочтения вашего поста и комментарии ниже, у вас есть структура следующим образом в вашем parent.component.html

 <app-child1></app-child1>
 <app-child2></app-child2>
 <button type="button">Click Me!</button>

При нажатии на кнопку, вы хотите получить данные от ребенка1 и child2 в родительский компонент.

Таким образом, один из способов решения этой проблемы - использование ссылочной переменной шаблона,

<app-child1 #child1></app-child1>
<app-chidl2 #child2></app-child2>
<button type="button" (click)="getDataFromChild(child1,child2)">Click Me!</button>

Внутри вашего родительского машинописного текста

getDataFromChild(child1,child2) {
  dataFromChild1 = child1.getData();
  dataFromChild2 = child2.getData();
}

Добавьте метод getData () в child1 и ц child2 компонента и возвращает необходимые данные.

0
ответ дан emkay 1 March 2019 в 14:14
поделиться

Если вы просто хотите передать некоторые данные, как показано в вашем примере, вы можете сделать это следующим образом

 Message: {{ child.message }}
 <app-child #child></app-child>
0
ответ дан ABOS 1 March 2019 в 14:14
поделиться

Вы разговариваете со своим ребенком через @Input() и разговариваете с родителями по @Output.

Например, вы получаете сообщение от ребенка, используя @Output.

Вот ваш дочерний компонент.

import { Component} from '@angular/core';
@Component({
  selector: 'app-child',
  template: `
  `,
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements AfterViewInit {
  @Output() messageChanged: EventEmitter<string>();
  message = 'Hola Mundo!';

  constructor() { 
     this.messageChanged = new EventEmitter<string>();
  }

  ngAfterViewInit() {
    this.messageChanged.next(this.message);
  }
}

Вот как должен выглядеть ваш родитель.

import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `
    Message: {{ message }}
    <app-child (messageChanged)="onMessageChange($event)"></app-child>
  `,
  styleUrls: ['./parent.component.css']
})
export class ParentComponent {
  constructor() { }

  message:string;

  onMessageChange(message: string) {
    this.message = message;
  }
}
0
ответ дан Anjil Dhamala 1 March 2019 в 14:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: