본문으로 건너뛰기

show-suggest

설명

구성된 트리거에 대한 제안 드롭다운이 열릴 때 발생합니다

show-suggest 이벤트는 RichText가 현재 트리거에 대해 비어 있지 않은 항목 목록을 확인한 후, 드롭다운이 열리기 직전에 발생합니다. 이 이벤트를 가로채어 항목을 조정하거나, 드롭다운의 위치를 변경하거나, 드롭다운을 취소할 수 있습니다.

사용법

"show-suggest": ({
trigger: string,
query: string,
items: Array<{
id?: string | number,
label?: string,
url?: string,
// ...트리거의 데이터 소스에서 가져온 모든 커스텀 필드
}>,
pos: DOMRect
}) => boolean | void;

매개변수

show-suggest 이벤트의 callback은 다음 필드를 포함하는 객체를 수신합니다.

  • trigger - 드롭다운을 열었던 트리거 문자
  • query - 트리거 문자 뒤에 입력된 텍스트 (items 필터링에 사용됨)
  • items - 확인(및 이미 필터링)된 제안 항목 목록. 각 항목은 제안 항목 형태를 따릅니다: 선택적 id, label, urltriggerTemplate에서 사용되는 모든 커스텀 필드(예: image 또는 name)
  • pos - 커서 위치를 나타내는 DOMRect; 드롭다운을 화면에 배치하는 데 사용됩니다
정보

내부 이벤트를 처리하려면 Event Bus 메서드를 사용하세요.

예제

// RichText 초기화
const editor = new richtext.Richtext("#root", {
triggers: [{ trigger: "@", data: people }]
// 기타 구성 속성
});
// 드롭다운이 열리기 전에 제안 목록을 재정의합니다
editor.api.intercept("show-suggest", (state) => {
if (state.trigger === "@" && state.query === "") {
return { ...state, items: state.items.slice(0, 5) };
}
});

변경 이력: 이 이벤트는 v2.1에서 추가되었습니다

관련 샘플: RichText. 멘션, 태그 및 비동기 조회

관련 문서: 멘션 및 태그