如何解决ngx-bootstrap - 子组件中的手风琴组
父组件
<input type="button" class="btn btn-primary" (click)="allExpanded = !allExpanded" [attr.value]="allExpanded ? 'Collapse All': 'Expand All'" >
<div class="all-components" >
<accordion>
<accordion-group heading="Test1" [isOpen]="allExpanded">
Hey
</accordion-group>
<accordion-group heading="Test2" [isOpen]="allExpanded">
Hey
</accordion-group>
<app-child-comp-1 allExpanded = "{{ allExpanded }}" ></app-child-comp-1>
<app-child-comp-2 allExpanded = "{{ allExpanded }}" ></app-child-comp-2>
</accordion>
</div>
子组件 1
<accordion-group heading="Child Component *ngIf="dataExists" [isOpen]="allExpanded">
Hey
</accordion-group>
我想做什么
在父组件中维护手风琴并调用具有
当点击父组件中的按钮时,设置
为什么我要这样做
某些子组件可能没有数据,如果是这种情况,我不希望显示
例如:
<accordion-group heading="Child Component" *ngIf="dataExists" [isOpen]="allExpanded">
Hey
</accordion-group>
如果子组件 1 的 dataExists 为 false,则不显示此
我面临的问题
将 allExpanded 传递给子组件并设置 [isOpen]="allExpanded" 在子组件中没有按预期工作 - 它只会展开,不会折叠。
它确实适用于在父组件中定义的
观察
当点击 Expand/Collapse 按钮时,所有 [isOpen] 的值都从 True 变为 False,但组的类只改变父组件中定义的那些,而不是子组件中定义的。
解决方法
这里似乎不需要子组件。 ng-container
就足够了
<input type="button" class="btn btn-primary" (click)="allExpanded = !allExpanded" [attr.value]="allExpanded ? 'Collapse All': 'Expand All'" >
<div class="all-components" >
<accordion>
<accordion-group heading="Test1" [isOpen]="allExpanded">
Hey
</accordion-group>
<accordion-group heading="Test2" [isOpen]="allExpanded">
Hey
</accordion-group>
<ng-container *ngIf="dataExists">
<accordion-group heading="Child Component" [isOpen]="allExpanded">
Hey
</accordion-group>
<accordion-group heading="Child Component" [isOpen]="allExpanded">
Hey
</accordion-group>
</ng-container>
</accordion>
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。