angular - 如何删除 PrimeNG 编辑器的选项卡功能

标签 angular primeng quill

PrimeNG 的富文本编辑器使用 quill,并通过 JavaScript 设置它,具有使用以下代码禁用 Tab 键切换的功能:

keyboard: {
    bindings: {
        tab: false,
        handleEnter: {
            key: 13,
            handler: function() {
                // Do nothing
            }
        }
    }
}

我可以使用以下方式联系 Angular 中的编辑器:

private quill:any;

@ViewChild(Editor) editorComponent: Editor;

ngAfterViewInit() {
   this.quill = this.editorComponent.quill;
}

但是如何使用 this.quill 对象将 tab 设置为 false?有什么想法吗?

最佳答案

似乎在 Primeng 中我们没有任何方便的方法来实现这一点。它可能在那里,但我什么也没找到。所以这是我的解决方案。它可能不是最好的解决方案,但它应该可以解决您的目的。

组件.html

<p-editor [style]="{'height':'320px'}" (onInit)="editorcall($event)"></p-editor>

我正在使用 (onInit),以便我们可以在编辑器加载到 DOM 后立即禁用该选项卡。

组件.ts

export class EditorComponent {
     public tab = { 
          key:9,
          handler: function() {
              return false;
          }
    };
    editorcall(event:any){
        event.editor.keyboard.bindings[9].length = 0;
        event.editor.keyboard.bindings[9].push(this.tab);
      }
}

我刚刚删除了所有带有键代码 9 的引用。这是 Tab 键。 为什么我创建了一个新的选项卡对象并在绑定(bind)中再次推送它,只是因为每当您单击选项卡时,鼠标指针不应该移动到任何其他 HTML 组件。它应该只存在于编辑器内部。 您可以注释此行 //event.editor.keyboard.bindings[9].push(this.tab); 并查看副作用。

确保这不会在任何地方破坏您的应用程序。

关于angular - 如何删除 PrimeNG 编辑器的选项卡功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53703313/

相关文章:

Angular 2 : ng-content attributes passing to child component

angular - 从url在页面之间传递数据

angular - Primeng pTooltip 循环

angular - 在我的应用程序上看不到自定义 Google map 样式

angular - 具有自定义 HTTP 和 ConfigService 循环依赖的 DI

angular - Primeng p-table : how to reset custom filters? 调用 reset() 重置表但我的过滤器的值保持不变

angular - 在 Angular 9 中使用 PrimeNG 咆哮模块

html - 羽毛笔编辑器 - 焦点

javascript - Quill JS 添加内联或 'formatBlock' 样式

javascript - 如何从 quils 获取数据发送到服务器?