angular在父组件上触发子组件方法并获取到返回的值
时间: 2023-11-30 19:51:16 浏览: 157
要在父组件上触发子组件的方法并获取返回值,可以使用 @ViewChild 装饰器来访问子组件的实例,然后调用子组件的方法。
在父组件中,首先需要使用 @ViewChild 装饰器获取到子组件的实例。然后在需要调用子组件方法的地方,可以通过子组件实例调用子组件的方法,并且可以获取到子组件方法返回的值。
下面是一个示例代码:
// 子组件
import { Component } from '@angular/core';
@Component({
selector: 'app-child',
template: `
<p>{{ message }}</p>
`,
})
export class ChildComponent {
message = 'Hello from child component';
greet(name: string) {
return `Hello, ${name}!`;
}
}
// 父组件
import { Component, ViewChild } from '@angular/core';
import { ChildComponent } from './child.component';
@Component({
selector: 'app-parent',
template: `
<button (click)="onGreet()">Greet</button>
<p>{{ greeting }}</p>
<app-child></app-child>
`,
})
export class ParentComponent {
@ViewChild(ChildComponent) child: ChildComponent;
greeting: string;
onGreet() {
this.greeting = this.child.greet('Bob');
}
}
在这个示例中,父组件通过 @ViewChild 装饰器获取到子组件的实例,然后在按钮点击事件处理函数中调用子组件的 greet 方法,并且将返回值赋值给 greeting 属性。最后,在模板中显示 greeting 属性的值。
希望对你有所帮助!
阅读全文