angular+ng-zorro后台搜索页面

这篇博客介绍了如何利用ng-zorro库在Angular项目中创建一个带有搜索框的表格,并根据搜索内容实时更新数据。内容详细讲解了ng-zorro的24栅格布局系统,通过nz-row和nz-col组件实现灵活的布局,并给出了具体的代码示例,展示了如何设置nzSpan和nzGutter属性以调整组件的分布和间距。最后,提醒读者在模块中导入所需组件以避免运行错误。

继续上一次表格的内容,这次要在页面的头部加上一个搜索框,然后让表格的数据可以根据搜索内容更新
首先要介绍下ng-zorro的栅格化布局,以下摘自官网

在多数业务情况下,Ant Design 需要在设计区域内解决大量信息收纳的问题,因此在 12 栅格系统的基础上,将整个设计建议区域按照 24 等分的原则进行划分。划分之后的信息区块我们称之为『盒子』。建议横向排列的盒子数量最多四个,最少一个。『盒子』在整个屏幕上占比见上图。设计部分基于盒子的单位定制盒子内部的排版规则,以保证视觉层面的舒适感。

布局的栅格化系统,是基于行(row)和列(col)来定义信息区块的外部框架,以保证页面的每个区域能够稳健地排布起来。下面简单介绍一下它的工作原理:通过 row 在水平方向建立一组 column(简写 col),内容应当放置于 col 内,并且,只有 col 可以作为 row 的直接元素。栅格系统中的列是指 1 到 24 的值来表示其跨越的范围。例如,三个等宽的列可以使用 <div nz-col [nzSpan]=“8” /> 来创建。如果一个 row 中的 col 总和超过 24,那么多余的 col 会作为一个整体另起一行排列。我们的栅格化系统基于 Flex 布局,允许子元素在父节点内的水平对齐方式 - 居左、居中、居右、等宽排列、分散排列。子元素与子元素之间,支持顶部对齐、垂直居中对齐、底部对齐的方式。同时,支持使用 order 来定义元素的排列顺序。布局是基于 24 栅格来定义每一个『盒子』的宽度,但不拘泥于栅格。

有了以上的理论知识就可以画出这样的表格了
在这里插入图片描述
代码如下,这是根据官网给的案例进行修改的,这边表单的布局是应用栅格化布局的,我们设置nzSpan的值为6就表示有4个组件,因为4*6=24,栅格布局是基于24栅格的,所以要布局3个条件框的话就把nzSpan的值设为8,代码里的nzGutter的意思用官网的话来解释就是:

栅格常常需要和间隔进行配合,你可以使用 nz-row 的 nzGutter 属性,我们推荐使用 (16+8n)px 作为栅格间隔。(n 是自然数)

<form nz-form class="ant-advanced-search-form">
  <div nz-row [nzGutter]="16">
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件01</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件01</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件01</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件01</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
  </div>
  <div nz-row>
    <div nz-col [nzSpan]="24" class="search-area">
      <button nz-button [nzType]="'primary'">Search</button>
      <button nz-button (click)="resetForm()">Clear</button>
    </div>
  </div>
</form>
<div style="height: 20px;"></div>
<form nz-form class="ant-advanced-search-form">
  <div nz-row [nzGutter]="16">
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件01</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件02</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <nz-form-label>条件03</nz-form-label>
        <nz-form-control>
          <input nz-input placeholder="placeholder" />
        </nz-form-control>
      </nz-form-item>
    </div>
    <div nz-col nzSpan="6">
      <nz-form-item>
        <button nz-button [nzType]="'primary'" (click)="search()">Search</button>
      </nz-form-item>
    </div>
  </div>
</form>

当然千万不要忘记引入组件,要不然是会报错的,也就是在welcome.module.ts中引入,NzButton、NzIconModule、NzSpaceModule、CUSTOM_ELEMENTS_SCHEMA、NO_ERRORS_SCHEMA

import { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';

import { WelcomeRoutingModule } from './welcome-routing.module';

import { WelcomeComponent } from './welcome.component';
import { NzTableModule } from 'ng-zorro-antd/table';
import { CommonModule } from '@angular/common';
import { NzFormModule } from 'ng-zorro-antd/form';
import { FormsModule,ReactiveFormsModule } from '@angular/forms';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzIconModule } from 'ng-zorro-antd/icon';
import {NzSpaceModule} from 'ng-zorro-antd/space';

@NgModule({
  imports: [WelcomeRoutingModule, 
    NzTableModule, 
    CommonModule, 
    NzFormModule,
    FormsModule,
    ReactiveFormsModule,
    NzButtonModule,
    NzIconModule,
    NzSpaceModule
  ],
  declarations: [WelcomeComponent],
  exports: [WelcomeComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class WelcomeModule { }

接下来把上面的html代表加入welcome.component.html中就可以了,这样我们就达到了下面的效果
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值