mention 提及

提及组件。

注意事项

  • 若数据中不包括 label 属性,则务必指定 valueWith 参数。

数据源说明

静态

指一次性获取数据,数据来源于 asyncDataenum

实时

指每一次选择会触发HTTP请求,数据来源于 loadData

代码演示

mention 提及 - 图1

基础样例

最简单的用法。

  1. import { Component } from '@angular/core';
  2. import { SFSchema, SFMentionWidgetSchema } from '@delon/form';
  3. import { MentionOnSearchTypes } from 'ng-zorro-antd/mention';
  4. import { NzMessageService } from 'ng-zorro-antd/message';
  5. import { of } from 'rxjs';
  6. import { delay } from 'rxjs/operators';
  7. const DATA = ['asdf', 'cipchk', '中文', 'にほんご'];
  8. @Component({
  9. selector: 'form-mention-simple',
  10. template: `
  11. <sf [schema]="schema" (formSubmit)="submit($event)"></sf>
  12. `,
  13. })
  14. export class FormMentionSimpleComponent {
  15. schema: SFSchema = {
  16. properties: {
  17. remark: {
  18. type: 'string',
  19. title: '描述',
  20. enum: DATA,
  21. minimum: 2,
  22. maximum: 5,
  23. ui: {
  24. widget: 'mention',
  25. inputStyle: 'textarea',
  26. } as SFMentionWidgetSchema,
  27. },
  28. // 异步静态数据源
  29. async: {
  30. type: 'string',
  31. title: 'Async',
  32. ui: {
  33. widget: 'mention',
  34. asynxcData: () => of(DATA).pipe(delay(1000)),
  35. } as SFMentionWidgetSchema,
  36. },
  37. // 实时数据
  38. real_time: {
  39. type: 'string',
  40. title: 'RealTime',
  41. ui: {
  42. widget: 'mention',
  43. loadData: (option: MentionOnSearchTypes) => of(DATA.filter(item => item.indexOf(option.value) !== -1)).pipe(delay(300)),
  44. } as SFMentionWidgetSchema,
  45. },
  46. },
  47. };
  48. constructor(public msg: NzMessageService) {}
  49. submit(value: any) {
  50. this.msg.success(JSON.stringify(value));
  51. }
  52. }

API

schema 属性

成员说明类型默认值
[enum]静态数据源SFSchemaEnumType[]-
[readOnly]禁用状态boolean-
[minimum]最少提及次数number-
[maximum]最多提及次数number-

ui 属性

成员说明类型默认值
[asyncData]异步静态数据源(input: string) => Observable<SFSchemaEnumType[]>-
[size]大小,等同 nzSizestring-
[placeholder]在文字框中显示提示讯息string-
[loadData]实时数据(option: MentionOnSearchTypes) => Observable<SFSchemaEnumType[]>-
[notFoundContent]未找到时的内容string无匹配结果,轻敲空格完成输入
[placement]建议框位置button,topbutton
[prefix]触发弹出下拉框的字符‘string’ ‘string[]’@
[valueWith]建议选项的取值方法(any) => string(value: string) => string
[select]下拉框选择建议时回调(value: any) => void-
[inputStyle]文本框类型text, textareatext
[autosize]自适应内容高度,可设置为 true|false 或对象:{ minRows: 2, maxRows: 6 }boolean,AutoSizeTypetrue