angular在父组件上触发孙组件方法
时间: 2023-06-22 08:25:28 浏览: 182
要在父组件上触发孙组件方法,需要使用`@ViewChild`装饰器来获取孙组件的实例,然后就可以调用孙组件的方法了。以下是一个示例代码:
在父组件的模板文件中,使用`<app-parent>`来包含子组件和孙组件:
```html
<app-parent>
<app-child>
<app-grandchild></app-grandchild>
</app-child>
</app-parent>
```
在父组件的类文件中,使用`@ViewChild`装饰器来获取孙组件的实例,并调用其方法:
```typescript
import { Component, ViewChild } from '@angular/core';
import { GrandchildComponent } from './grandchild.component';
@Component({
selector: 'app-parent',
template: `
<ng-content></ng-content>
`
})
export class ParentComponent {
@ViewChild(GrandchildComponent) grandchildComponent: GrandchildComponent;
triggerGrandchildMethod() {
this.grandchildComponent.grandchildMethod();
}
}
```
在孙组件的类文件中,定义需要触发的方法:
```typescript
import { Component } from '@angular/core';
@Component({
selector: 'app-grandchild',
template: `
<p>Grandchild Component</p>
`
})
export class GrandchildComponent {
grandchildMethod() {
console.log('Grandchild method triggered!');
}
}
```
现在你可以在父组件中调用`triggerGrandchildMethod`方法,来触发孙组件的方法了。
阅读全文