UNPKG

ng-ytl-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

315 lines (297 loc) 11.1 kB
<article> <section class="markdown"><h1>Cascader 级联选择</h1> <section class="markdown"><p>级联选择框。</p> <h2 id="何时使用"><span>何时使用</span> <a class="anchor">#</a> </h2> <ul> <li><p>需要从一组相关联的数据集合进行选择,例如省市区,公司层级,事物分类等。</p></li> <li><p>从一个较大的数据集合中进行选择时,用多级分类进行分隔,方便选择。</p></li> <li><p>比起 Select 组件,可以在同一个浮层中完成选择,有较好的体验。</p></li> </ul> </section> <h2>代码演示<i class="code-box-expand-trigger anticon anticon-appstore" title="展开全部代码"></i></h2> </section> <div nz-row [nzGutter]="8"> <div nz-col [nzSpan]="12"> <nz-code-box [nzTitle]="'基本用法'" id="components-cascader-demo-basic" [nzCode]="NzDemoCascaderBasicCode"> <nz-demo-cascader-basic demo></nz-demo-cascader-basic> <div intro> <p>省市区级联。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'可以自定义显示'" id="components-cascader-demo-custom-trigger" [nzCode]="NzDemoCascaderCustomTriggerCode"> <nz-demo-cascader-custom-trigger demo></nz-demo-cascader-custom-trigger> <div intro> <p>切换按钮和结果分开。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'禁用选项'" id="components-cascader-demo-disabled" [nzCode]="NzDemoCascaderDisabledCode"> <nz-demo-cascader-disabled demo></nz-demo-cascader-disabled> <div intro> <p>通过指定 nzOptions 里的 <code>disabled</code> 字段。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'大小'" id="components-cascader-demo-size" [nzCode]="NzDemoCascaderSizeCode"> <nz-demo-cascader-size demo></nz-demo-cascader-size> <div intro> <p>不同大小的级联选择器。</p> </div> </nz-code-box> </div> <div nz-col [nzSpan]="12"> <nz-code-box [nzTitle]="'默认值'" id="components-cascader-demo-default-value" [nzCode]="NzDemoCascaderDefaultValueCode"> <nz-demo-cascader-default-value demo></nz-demo-cascader-default-value> <div intro> <p>默认值通过数组的方式指定。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'移入展开'" id="components-cascader-demo-hover" [nzCode]="NzDemoCascaderHoverCode"> <nz-demo-cascader-hover demo></nz-demo-cascader-hover> <div intro> <p>通过移入展开下级菜单,点击完成选择。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'选择即改变'" id="components-cascader-demo-change-on-select" [nzCode]="NzDemoCascaderChangeOnSelectCode"> <nz-demo-cascader-change-on-select demo></nz-demo-cascader-change-on-select> <div intro> <p>这种交互允许只选中父级选项。设置 <code>nzChangeOnSelect</code> 或者 <code>nzChangeOn</code></p> </div> </nz-code-box> <nz-code-box [nzTitle]="'自定义已选项'" id="components-cascader-demo-custom-render" [nzCode]="NzDemoCascaderCustomRenderCode"> <nz-demo-cascader-custom-render demo></nz-demo-cascader-custom-render> <div intro> <p>例如给最后一项加上邮编链接。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'动态加载选项'" id="components-cascader-demo-lazy" [nzCode]="NzDemoCascaderLazyCode"> <nz-demo-cascader-lazy demo></nz-demo-cascader-lazy> <div intro> <p>使用事件 <code>nzLoad</code> 实现动态加载选项。</p> </div> </nz-code-box> <nz-code-box [nzTitle]="'响应式表单'" id="components-cascader-demo-reactive-form" [nzCode]="NzDemoCascaderReactiveFormCode"> <nz-demo-cascader-reactive-form demo></nz-demo-cascader-reactive-form> <div intro> <p>创建响应式表单组件,并通过 <code>reset()</code> 方法重置数值。</p> </div> </nz-code-box> </div> </div> <section class="markdown api-container"> <h2 id="API"><span>API</span> <!-- <a class="anchor">#</a> --> </h2> <h3 id="Cascader"><span>nz-cascader</span> <!-- <a class="anchor">#</a> --> </h3> <table> <thead> <tr> <th>参数</th> <th>说明</th> <th>类型</th> <th>双向绑定</th> <th>默认值</th> </tr> </thead> <tbody> <tr> <td>ngModel</td> <td>默认值,直接提供数组</td> <td>Array</td> <td></td> <td>-</td> </tr> <tr> <td>nzSize</td> <td>输入框大小,<code>large</code> 高度为 32px,<code>small</code> 为 22px,默认是 28px</td> <td>string</td> <td></td> <td>`default`</td> </tr> <tr> <td>nzDisabled</td> <td>禁用</td> <td>bool</td> <td></td> <td>false</td> </tr> <tr> <td>nzPlaceHolder</td> <td>输入框的默认文字</td> <td>string</td> <td></td> <td>'Please select'</td> </tr> <tr> <td>nzShowInput</td> <td>显示输入框。设置为<code>false</code>可隐藏输入框,但需要增加自定义显示内容。</td> <td>bool</td> <td></td> <td>true</td> </tr> <tr> <td>nzShowSearch</td> <td>是否支持搜索</td> <td>bool</td> <td></td> <td>false</td> </tr> <tr> <td>nzAllowClear</td> <td>是否显示清除按钮</td> <td>bool</td> <td></td> <td>true</td> </tr> <tr> <td>nzClearText</td> <td>清除按钮的标题</td> <td>string</td> <td></td> <td>'Clear'</td> </tr> <tr> <td>nzShowArrow</td> <td>是否显示箭头</td> <td>bool</td> <td></td> <td>true</td> </tr> <tr> <td>nzPopupClassName</td> <td>弹出菜单的自定义样式</td> <td>string</td> <td></td> <td>-</td> </tr> <tr> <td>nzColumnClassName</td> <td>弹出菜单中数据列的自定义样式</td> <td>string</td> <td></td> <td>-</td> </tr> <tr> <td>nzOptions</td> <td>初始化列数据,用于第一列的数据,子列通过选项的 <code>children</code> 加载,或者通过 <code>nzLoad</code>事件异步加载。 </td> <td>Array</td> <td></td> <td>-</td> </tr> <tr> <td>nzEnableCache</td> <td>是否缓存异步加载的数据,若每次异步加载的数据都是变化的,需将该值设置为 false</td> <td>bool</td> <td></td> <td>true</td> </tr> <tr> <td>nzExpandTrigger</td> <td>次级菜单的展开方式,可选 'click' 和 'hover'</td> <td>string</td> <td></td> <td>'click'</td> </tr> <tr> <td>nzChangeOnSelect</td> <td>当此项为 true 时,点选每级菜单选项值都会发生变化,具体见上面的演示</td> <td>bool</td> <td></td> <td>false</td> </tr> <tr> <td>nzChangeOn</td> <td>可通过自定义的函数来判断点击菜单选项是否应该发生变化,当函数返回 true 时,将发生变化。函数说明:(option: CascaderOption, level: number): boolean</td> <td>Function</td> <td></td> <td>-</td> </tr> <tr> <td>nzTriggerAction</td> <td>触发菜单出现的行为,可选Array<'click' | 'hover'></td> <td>string</td> <td></td> <td>['click']</td> </tr> <tr> <td>nzDisplayRender</td> <td>选择后展示的渲染函数。函数说明:(label: string[], selectedOptions: CascaderOption[]) => string</td> <td>Function</td> <td></td> <td><code>label => label.join(' / ')</code></td> </tr> <tr> <td>nzValueProperty</td> <td><code>value</code>的属性名称</td> <td>string</td> <td></td> <td>'value'</td> </tr> <tr> <td>nzLabelProperty</td> <td><code>label</code>的属性名称</td> <td>string</td> <td></td> <td>'label'</td> </tr> <tr> <td>nzVisibleChange</td> <td>菜单实现或隐藏事件,参数为:(visible: boolean)</td> <td>Event</td> <td></td> <td>-</td> </tr> <tr> <td>nzChange</td> <td>选项值变更事件,参数为:(value: any[])</td> <td>Event</td> <td></td> <td>-</td> </tr> <tr> <td>nzSelectionChange</td> <td>选项变更事件,参数为:(options: CascaderOption[])</td> <td>Event</td> <td></td> <td>-</td> </tr> <tr> <td>nzSelect</td> <td>选项被选中事件,参数为:({{'{'}} option: CascaderOption, index: number {{'}'}})。选项被选中,不代表值会发生变化。</td> <td>Event</td> <td></td> <td>-</td> </tr> <tr> <td>nzLoad</td> <td>异步加载事件,参数为:({{'{'}} option: CascaderOption, index: number, resolve: (children: CascaderOption[]) => void, reject: () => void {{'}'}})。</td> <td>Event</td> <td></td> <td>-</td> </tr> <tr> <td>nzClear</td> <td>内容被清空事件,参数为:()。</td> <td>Event</td> <td></td> <td>-</td> </tr> </tbody> </table> <style> .ant-cascader-picker { width: 250px; } </style> <blockquote> <p> 注意,如果需要获得中国省市区数据,可以参考 <a href="https://gist.github.com/afc163/7582f35654fd03d5be7009444345ea17"> china-division </a></p> </blockquote> </section> </article>