是否可以抽象出模板的公共部分?

亚历克斯

例如,我有多个用于分页集合的组件。模板示例:

<div *ngIf="!isFormVisible">
    <button class="btn" [ngClass]="{'btn-info': filtered, 'btn-default': !filtered}" (click)="showForm()">Filter</button>
    <button class="btn btn-default" (click)="createNew()">Create new</button>
</div>

<div class="panel panel-default" *ngIf="isFormVisible">
    <div class="panel-heading">
        <h3 class="panel-title">Filter<button type="button" class="close" (click)="hideForm()">&times;</button></h3>
    </div>
    <div class="panel-body form-horizontal">
        <form (ngSubmit)="onFormSubmit()">
            <fieldset>
                <div class="form-group">
                    <label class="control-label col-md-2" for="id">Id</label>
                    <div class="controls col-md-10">
                        <input type="text" class="form-control [(ngModel)]="filter.id"/>
                    </div>
                </div>

                <div class="form-group">
                    <label class="control-label col-md-2" for="userName">Username</label>
                    <div class="controls col-md-10">
                        <input type="text" class="form-control" [(ngModel)]="filter.userName"/>
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <button type="submit" class="btn btn-default">Filter</button>
                        <button type="reset" class="btn btn-default" (click)="onFormReset()">Reset</button>
                    </div>
                </div>
            </fieldset>
        </form>
    </div>
</div>

<div *ngIf="busy">
    <h1><i class="fa fa-spinner fa-spin fa-pull-left"></i> Loading...</h1>
</div>

<label *ngIf="!currentQuery.result?.length && !busy">No results</label>
<div class="table-responsive" *ngIf="currentQuery.result?.length && !busy">
    <table class="table table-striped table-hover">
        <thead>
            <tr>
                <th>
                    <a href="javascript:void(0);" (click)="sortBy('id')">Id</a>
                </th>
                <th>
                    <a href="javascript:void(0);" (click)="sortBy('userName')">Username</a>
                </th>
                <th></th>
            </tr>
        </thead>
        <tbody>
            <tr *ngFor="#user of currentQuery.result">
                <td>{{user.id}}</td>
                <td>{{user.userName}}</td>
                <td><button class="btn btn-default btn-xs" (click)="manageUser(user.id)">Manage</button></td>
            </tr>
        </tbody>
    </table>
</div>
<pagination [currentPage]="currentQuery.pageIndex" [totalPages]="currentQuery.totalPages" (onPageClick)="onPageClick($event)"></pagination>

对于特定组件,我仅对过滤器输入字段,表标题和行模板感兴趣。对所有组件重复所有其余的操作。是否可以以某种方式将DRY原理应用于模板并提取出重复的部分?

贡特·佐赫鲍尔(GünterZöchbauer)

您可以添加<ng-content>以包含在内。

@Component({
  selector: 'reuse-cmp',
  ...
  template: `
<div>some fixed content</div>
  <ng-content></ng-content>
<div>some fixed content in the middle</div>
  <ng-content select=".below"></ng-content>
<div>some fixed content below</div>
`
})
class ReusablePart {}

然后像

<reuse-cmp>
  <other-dynamic-content class="below"></other-dynamic-content>
  <dynamic-content></dynamic-content>
</resue-cmp>

包含将所有具有类的顶级元素below放置在此标记所在的位置,<ng-content select=".below"></ng-content>将与特定选择器不匹配的其余元素放置在放置该位置<ng-content></ng-content>的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以抽象出模板的公共部分?

来自分类Dev

是否可以抽象出 XML 代码的重复部分?

来自分类Dev

烧瓶:是否可以指示烧瓶“不要”处理模板的某些部分?

来自分类Dev

是否可以在单击事件上呈现部分响应式模板?

来自分类Dev

是否可以在 Django 中进行部分模板渲染?

来自分类Dev

是否可以(部分)实现抽象方法,并且仍然需要派生类也可以实现它?

来自分类Dev

是否可以(部分)实现抽象方法,并且仍然需要派生类也可以实现它?

来自分类Dev

是否可以同时指定模板类的一部分?(在“ <<”之前和“ <>”内部的部分)

来自分类Dev

是否可以同时指定模板类的一部分?(在“ <<”之前和“ <>”内部的部分)

来自分类Dev

是否可以声明模板的模板?

来自分类Dev

在C ++的类模板中是否可以有一个公共的,未专门化的静态成员?

来自分类Dev

是否可以将模板的某些部分放置在其他文件中?

来自分类Dev

Jinja2是否可以忽略模板中包含{}的部分(例如,内联javascript)

来自分类Dev

是否可以为handlebars.js / moustache.js模板的不同部分设置样式?

来自分类Dev

是否可以仅重新渲染模板的一部分

来自分类Dev

是否可以使用打包程序 virtualbox-ovf 构建器将临时密钥的公共部分注入 OVA?

来自分类Dev

Phalcon / Volt 动态构建/渲染公共模板区域(部分)

来自分类Dev

是否可以完善转发模板模板参数

来自分类Dev

是否可以遍历模板参数?

来自分类Dev

是否可以创建字典“模板”?

来自分类Dev

抽象方法中的可选参数?是否可以?

来自分类Dev

是否可以翻译部分视图?

来自分类Dev

是否可以翻译部分视图?

来自分类Dev

是否可以部分继承ParseObject?

来自分类Dev

Angular2,如何为公共部分使用一个模板,为管理部分使用一个模板

来自分类Dev

是否可以忽略抽象性而检查抽象类是否可复制构造?

来自分类Dev

是否可以创建模板别名?

来自分类Dev

是否可以在Twig中定义内联模板?

来自分类Dev

是否可以在模板中动态加载指令?

Related 相关文章

  1. 1

    是否可以抽象出模板的公共部分?

  2. 2

    是否可以抽象出 XML 代码的重复部分?

  3. 3

    烧瓶:是否可以指示烧瓶“不要”处理模板的某些部分?

  4. 4

    是否可以在单击事件上呈现部分响应式模板?

  5. 5

    是否可以在 Django 中进行部分模板渲染?

  6. 6

    是否可以(部分)实现抽象方法,并且仍然需要派生类也可以实现它?

  7. 7

    是否可以(部分)实现抽象方法,并且仍然需要派生类也可以实现它?

  8. 8

    是否可以同时指定模板类的一部分?(在“ <<”之前和“ <>”内部的部分)

  9. 9

    是否可以同时指定模板类的一部分?(在“ <<”之前和“ <>”内部的部分)

  10. 10

    是否可以声明模板的模板?

  11. 11

    在C ++的类模板中是否可以有一个公共的,未专门化的静态成员?

  12. 12

    是否可以将模板的某些部分放置在其他文件中?

  13. 13

    Jinja2是否可以忽略模板中包含{}的部分(例如,内联javascript)

  14. 14

    是否可以为handlebars.js / moustache.js模板的不同部分设置样式?

  15. 15

    是否可以仅重新渲染模板的一部分

  16. 16

    是否可以使用打包程序 virtualbox-ovf 构建器将临时密钥的公共部分注入 OVA?

  17. 17

    Phalcon / Volt 动态构建/渲染公共模板区域(部分)

  18. 18

    是否可以完善转发模板模板参数

  19. 19

    是否可以遍历模板参数?

  20. 20

    是否可以创建字典“模板”?

  21. 21

    抽象方法中的可选参数?是否可以?

  22. 22

    是否可以翻译部分视图?

  23. 23

    是否可以翻译部分视图?

  24. 24

    是否可以部分继承ParseObject?

  25. 25

    Angular2,如何为公共部分使用一个模板,为管理部分使用一个模板

  26. 26

    是否可以忽略抽象性而检查抽象类是否可复制构造?

  27. 27

    是否可以创建模板别名?

  28. 28

    是否可以在Twig中定义内联模板?

  29. 29

    是否可以在模板中动态加载指令?

热门标签

归档