首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置组件中的组输入(组件配置语法)

配置组件中的组输入(组件配置语法)
EN

Stack Overflow用户
提问于 2021-10-07 16:11:11
回答 1查看 55关注 0票数 0

我有一个非常复杂的组件,它有大量的**@ lot ()**s。为了便于阅读,我想像DexExtreme的网格一样对输入进行分组。

DevExtreme网格有大量的输入,它们按如下方式划分它们:

代码语言:javascript
复制
<dx-data-grid
    [dataSource]="dataSource"
    [remoteOperations]="false">

    <dxo-paging [pageSize]="10"></dxo-paging>

</dx-data-grid>

如您所见,分页参数不是直接传递给dx-data-grid,而是通过子组件dxo-paging传递的。当您有非常可配置的组件时,我认为这是一个非常好的方法。

有人知道如何取得同样的结果吗?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-07 17:11:08

这实际上不是对输入进行分组,而是组合组件。这里使用的关键特性是角上的内容投影。它允许您使用从外部传递的其他组件填充父组件中的预定义槽。

您提供的示例将具有以下结构。我们有两个组件:父DxDataGridComponent和子DxoPagingComponent。您可以根据自己的意愿对这两个输入进行定义。然后父组件需要有一个<ng-content>插槽,其子组件将被投影到其中。

此外,还可以使用@ContentChild获取父组件中对此子组件的引用。

代码语言:javascript
复制
@Component({
    selector: 'dxo-paging',
    template: `
      <!-- Paging stuff -->
    `
})
export class DxoPagingComponent {
    @Input() pageSize;
}

@Component({
    selector: 'dx-data-grid',
    template: `
    <!-- DataGrid stuff -->
    <table>
    </table>
    <ng-content></ng-content>
  `
})
export class DxDataGridComponent implements AfterContentInit {
    @Input() dataSource;
    @Input() remoteOperations;
    @ContentChild(DxoPagingComponent)
    pagingComp: DxoPagingComponent;

    ngAfterContentInit() {
      console.log('Content initialized', this.pagingComp.pageSize);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69484479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档