我正在构建一个包含多个动态面板的页面,每个子面板都有相同的 HTML,所以我创建了一个父面板组件来包装每个面板。
问题是我想将孩子的事件发送到面板,但我似乎找不到答案。这是我到目前为止所拥有的:
// Panel Panel Component
@Component({
selector: 'panel',
template: `
<div (emittedEvent)="func($event)">
<ng-content></ng-content>
</div>
`
})
export class PanelComponent {
constructor() {}
func(event) {
// Do stuff with the event
}
}
// Child Panel Component (one of many)
@Component({
selector: 'child-panel-one',
template: `
// Template stuff
<button (click)="emitEvent()">Click</button>
`
})
export class ChildPanelOne {
emittedValue: Boolean = false;
@Output() emittedEvent = new EventEmitter();
constructor() {}
private emitEvent() {
this.emittedValue = true;
this.emittedEvent.emit(this.emittedValue)
}
}
//
// Main Parent Template
<panel>
<child-panel-one></child-panel-one>
</panel>
我可以创建一个共享服务,但将布尔值从子级传递给父级似乎有点过头了。
有任何想法吗?
谢谢