#javascript #angularjs #typescript #ionic-framework
Вопрос:
Мне нужно передать одну переменную, которая находится внутри моего дочернего компонента, на родительскую страницу. Эта переменная, которую я пытаюсь передать, является результатом массива сканера штрих-кодов.
И мне нужно передать его родителю, чтобы отправить в API.
Дочерний компонент.ts
this.consultList;
Родительский компонент.ts
export class ParentComponent implements OnInit {
@Input() consultList: any[] = [];
testCall() {
console.log('Test Consult: ', this.consultList;
}
Комментарии:
1. вы можете использовать
@Input()
и@Output()
событие для передачи переменных, от родителя к потомку вы можете использовать переменную @Input (), определенную в дочернем компоненте, от потомка к родителю вы можете использовать привязку события, определенную @Output в дочернем компоненте.2. привет, если мой ответ решит вашу проблему, пожалуйста, отметьте как ответ
Ответ №1:
import { Component, EventEmitter, Input, Output } from '@angular/core';
@Component({
selector: 'child',
template: `
<h1>Hello {{ name }}! This is child component</h1>
<button (click)="sendEventToParent()">Send data to parent</button>
`,
styles: [
`
h1 {
font-family: Lato;
}
`
]
})
export class ChildComponent {
@Input() name: string;
@Output() eventFromChild: EventEmitter<string> = new EventEmitter();
sendEventToParent(): void {
this.eventFromChild.emit('data from child');
}
}
вот родительский компонент html, называемый дочерним
<child name="{{ name }}" (eventFromChild)="onEvent($event)"></child>
<h1>This is parent component</h1>
<p>{{dataFromChild}}</p>
и такое связывание событий
import { Component, VERSION } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
name = 'Angular ' VERSION.major;
dataFromChild = '';
onEvent(event): void {
this.dataFromChild = event;
}
}
Ответ №2:
abstract class Parent {
abstract someProperty: string;
someCall() {
console.log(this.someProperty);
}
}
class ChildOne extends Parent {
someProperty = "I am child one";
}
class ChildTwo extends Parent {
someProperty = "I am child two";
}
const one = new ChildOne();
const two = new ChildTwo();
one.someCall(); // "I am child one";
two.someCall(); // "I am child two";