ohayolibs
Version:
Ohayo is a set of essential modules for ohayojp.
90 lines (79 loc) • 2.13 kB
Markdown
---
order: 2
title:
zh-CN: 扩展菜单
en-US: Custom dropdown
---
## zh-CN
使用 `dropdownRender` 对下拉菜单进行自由扩展。
## en-US
Customize the dropdown menu via `dropdownRender`.
```ts
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFSelectWidgetSchema } from '@ohayo/form';
import { NzMessageService } from 'ng-zorro-antd/message';
export class DemoComponent implements OnInit {
private sf: SFComponent;
private dropdownRender!: TemplateRef<void>;
schema: SFSchema;
statusList: string[] = ['1', '2', '3'];
constructor(private msg: NzMessageService) {}
submit(value: {}): void {
this.msg.success(JSON.stringify(value));
}
ngOnInit(): void {
this.schema = {
properties: {
status: {
type: 'string',
title: '状态',
enum: this.statusList,
default: '1',
ui: {
widget: 'select',
dropdownRender: this.dropdownRender,
} as SFSelectWidgetSchema,
},
},
};
}
addItem(input: HTMLInputElement): void {
this.statusList.push(input.value);
const statusProperty = this.sf.getProperty('/status')!;
statusProperty.schema.enum = this.statusList;
this.sf.setValue('/status', input.value);
}
}
```