2017-08-21 5 views
1

私は雪のテーマでngx-quillを使用しており、クイルリンクの動作をオーバーライドしたいと考えています。 私は、リンクのアイコンをクリックして、ユーザーがモーフィングツールチップを開く代わりにテキストコンテンツのリンクを選択したときに、このモーダルを再び開くと、カスタムモーダル(primeng)を開きたいと思っています。角2のオーバーライドクイルエディタリンク

私はエディタキャッチするonEditorCreated使用

:コンポーネントで

<quill-editor id="quill-editor" #editor [(ngModel)]="selectedSiteWebPageLigneColonne.contenuTemp" [style]="{'height':'300px'}" [modules]="moduleSortieSportQuill" (onEditorCreated)="onEditorCreated($event)"> 

onInitEditor(event) { 
    const quill = event.editor; 
    quill.options.bounds = "#quill-editor"; 
    const toolbar = quill.getModule('toolbar'); 
    toolbar.addHandler('link', (value) => { 
     if (value) { 
      let range = quill.getSelection(); 
      if (range == null || range.length == 0) return; 
      let preview = quill.getText(range); 
      if (/^\[email protected]\S+\.\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) { 
       preview = 'mailto:' + preview; 
      } 

      //let tooltip = quill.theme.tooltip; 
      //tooltip.edit('link', preview); 
      //HERE I CAN OPEN MY MODAL WITH SUCCESS INSTEAD OF USING QUILL TOOLTIP 
     } else { 
      quill.format('link', false); 
     } 
    }); 
} 

をしかし、ユーザーがへのリンクをクリックしたとき、それがオープンするツールチップを避けるために、私にとって非常にdifficulになりますクイルエディタ:(

すべてのヘルプ...オープンするツールチップを停止し、私のカスタムのモーダルを開こうとするために

editor.on(Emitter.events.SELECTION_CHANGE, (range, oldRange, source) => { 
     return; 
    }); 

    document.querySelector('a.ql-action').addEventListener('click', (event) => { 
     event.preventDefault(); 
    }); 
    document.querySelector('a.ql-remove').addEventListener('click', (event) => { 
     event.preventDefault(); 
    }); 

が、ツールヒントが常に表示されます:

は、私のような多くのことを試してみました。本当に感謝します

+0

ハンドラ設定オプションをお探しですか? https://quilljs.com/docs/modules/toolbar/#handlers – jhchen

+0

ハンドラでは、テキストコンテンツ内のリンクがクリックされたときの動作(ツールチップを開いた状態)ではなく、ツールバー内のボタンをオーバーライドできるようにするため、いいえ – toregua

+0

今までにこれを理解することができましたか?私は全く同じ状況にいる。 – samuraiseoul

答えて

0

をそれはハックですが、あなたは雪のテーマのショーの機能を無効にする必要があります。

let that = this; 
this.quill.theme.tooltip.show = function(){ 
    that.quill.formatText(this.linkRange.index, this.linkRange.length, 'link', 'URL HERE'); 
}