在Angular6中,当父组件不使用子组件选择器时,可以通过使用@Output装饰器和EventEmitter来将数据从子组件传递到父组件。
首先,在子组件中定义一个输出属性,并使用@Output装饰器将其标记为一个事件。例如:
import { Component, Output, EventEmitter } from '@angular/core';
@Component({
selector: 'app-child',
template: `
<button (click)="sendData()">Send Data</button>
`
})
export class ChildComponent {
@Output() dataEvent = new EventEmitter<string>();
sendData() {
const data = 'Hello from child component';
this.dataEvent.emit(data);
}
}
在上面的代码中,我们定义了一个名为dataEvent的输出属性,并使用EventEmitter来创建一个事件。在sendData方法中,我们将要传递给父组件的数据通过emit方法发送出去。
接下来,在父组件中使用子组件,并监听子组件的输出事件。例如:
import { Component } from '@angular/core';
@Component({
selector: 'app-parent',
template: `
<app-child (dataEvent)="receiveData($event)"></app-child>
<p>Data from child: {{ receivedData }}</p>
`
})
export class ParentComponent {
receivedData: string;
receiveData(data: string) {
this.receivedData = data;
}
}
在上面的代码中,我们在父组件的模板中使用子组件,并通过(dataEvent)="receiveData($event)"监听子组件的输出事件。当子组件发出事件时,父组件的receiveData方法会被调用,并将子组件传递的数据作为参数接收。
这样,当子组件中的按钮被点击时,数据就会从子组件传递到父组件,并在父组件中显示出来。
推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)
领取专属 10元无门槛券
手把手带您无忧上云