微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

TinyMCE 5 过滤列表框项目

如何解决TinyMCE 5 过滤列表框项目

我正在为 TinyMCE 构建一个插件,用于将内容插入到编辑器中。 由于列表框中的项目数组中有很多成员,我想过滤它们。 我添加一个输入作为过滤器。

问题是我无法更新列表框内容

我尝试从输入中获取数据并在 onAction() 函数中使用该数据过滤列表框数组,但列表框项保持不变。

有没有办法过滤列表框的内容

我在文档中找不到任何可以帮助我找到解决方案的内容,也没有提出类似的问题。

tinymce.PluginManager.add("insertSnippet",function (editor,url) {
var snippets = [];
snippets = JSON.parse(sessionStorage.getItem('snippets'));
var snippet = snippets[0];
var openDialog = function openDialog() {
return editor.windowManager.open({
  title: "Insert Snippet",size: "large",body: {
    type: "panel",items: [{
      type: "input",name: "filter",inputMode: "text",label: "Search Snippets"
    },{
      type: "button",text: "Search",name: "searchBtn",primary: false,},{
      type: "listBox",name: "snippets",label: "Select Snippet",disabled: false,items: snippets,{
      type: "htmlpanel",html: snippet.value
    }
    ]
  },buttons: [{
    primary: true,type: "submit",name: "submit",text: "Insert"
  },{
    type: "cancel",name: "cancel",text: "cancel"
  }],onSubmit: function onSubmit(data) {

  }
  onAction: function onAction(dialogApi,details) {
    var dialogData = dialogApi.getData();
    if (details.name === 'searchBtn') {
      if (dialogData.filter.length > 0) {
        snippets = snippets.filter(s => s.text.includes(dialogData.filter))
      } else {
        snippets = JSON.parse(sessionStorage.getItem('snippets'));
      }
    }
  }
})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。