Angular6 角度项目中的嵌套组件调用?
如何在组件内部单击按钮时在其他组件中渲染组件?我想您要查找的是事件发射器。有关文档,请参阅 下面是一个简单的代码笔来演示:Angular6 角度项目中的嵌套组件调用?,angular6,Angular6,如何在组件内部单击按钮时在其他组件中渲染组件?我想您要查找的是事件发射器。有关文档,请参阅 下面是一个简单的代码笔来演示: //parent-component.ts @组成部分({ 选择器:“父组件”, 模板:` 父母亲 ` }) 类ParentComponent{ showNestedChildA:boolean=false; 公共开关ShowNestedChilda(事件){ this.showNestedChildA=!this.showNestedChildA; } } //child
//parent-component.ts
@组成部分({
选择器:“父组件”,
模板:`
父母亲
`
})
类ParentComponent{
showNestedChildA:boolean=false;
公共开关ShowNestedChilda(事件){
this.showNestedChildA=!this.showNestedChildA;
}
}
//child-a-component.ts
@组成部分({
选择器:“子组件”,
模板:`
孩子A
`
})
类ChildAComponent{
@Input()showNestedChild:boolean=false;
}
//嵌套-child-a-component.ts
@组成部分({
选择器:“嵌套子组件”,
模板:`
嵌套子对象A
`
})
类NestedChildAComponent{}
//child-b-component.ts
@组成部分({
选择器:'child-b-component',
模板:`
孩子B
切换嵌套的子对象A
`
})
类子组件{
@Output()toggleNested=neweventemitter();
公开展示{
this.toggleNested.emit(null)
}
}
请说得更具体一些,很难理解您想要实现的目标
// parent-component.ts
@Component({
selector: 'parent-component',
template: `
<h1>Parent</h1>
<child-a-component [showNestedChild]="showNestedChildA"></child-a-component>
<child-b-component (toggleNested)="toggleShowNestedChildA($event)"></child-b-component>
`
})
class ParentComponent {
showNestedChildA: boolean = false;
public toggleShowNestedChildA(event) {
this.showNestedChildA = !this.showNestedChildA;
}
}
// child-a-component.ts
@Component({
selector: 'child-a-component',
template: `
<h2>Child A</h2>
<nested-child-a-component *ngIf="showNestedChild"></nested-child-a-component>
`
})
class ChildAComponent {
@Input() showNestedChild: boolean = false;
}
// nested-child-a-component.ts
@Component({
selector: 'nested-child-a-component',
template: `
<h3>Nested Child A</h3>
`
})
class NestedChildAComponent { }
// child-b-component.ts
@Component({
selector: 'child-b-component',
template: `
<h2>Child B</h2>
<button (click)="showNested()">Toggle Nested Child A</button>
`
})
class ChildBComponent {
@Output() toggleNested = new EventEmitter();
public showNested() {
this.toggleNested.emit(null)
}
}