Summernote编辑器落后于summernote工具栏

时间:2018-03-26 14:06:49

标签: angularjs summernote

我正在使用带有angularJS的summernote。我写了一个包装器来使它工作。在我的HTML中,我试图使用summerstrap与bootstrap崩溃。当我切换面板时,summernote编辑器落后于summernote工具栏。当我稍微调整窗口大小时,它会得到修复。无法弄清楚是什么问题。

This how it shows up in the console

这是js包装器

   @Component({
selector: 'summernote',
templateUrl: './summernote.html'})
  export class SummernoteComponent implements AfterViewInit, OnDestroy {
@ViewChild('input') input: ElementRef;

@Input() placeHolderText: string = "";
@Input() selectedText = null;

@Output() changeText = new EventEmitter<any>();
value: string;

constructor(private zone: NgZone) { }

ngAfterViewInit() {
    var config = this.buildConfigObject();
    if (typeof window !== 'undefined') {
        let _self = this;
        this.zone.runOutsideAngular(() => {
            $(_self.input.nativeElement).summernote(config);
            $(_self.input.nativeElement).on("summernote.change", function (value, contents, $editable) {
                // _self.value = contents;
                _self.value = contents.split("<p><br></p>").join("");
                _self.changeText.emit(_self.value);
            })

            if (_self.selectedText) {
                $(_self.input.nativeElement).summernote('pasteHTML', _self.selectedText);
            }

        });
        $(_self.input.nativeElement).summernote('disable');
        $(_self.input.nativeElement).summernote('enable');

    }
}

ngOnDestroy() {
    //$(this.input.nativeElement).timepicker('destroy');
}

buildConfigObject() {
    var config = {
        callbacks: {
            onChange: function (contents, $editable) {
            }
        },
        placeholder: this.placeHolderText,
        // airMode: true,
        minHeight: null,             // set minimum height of editor
        maxHeight: null,             // set maximum height of editor
        focus: true,
          popover: {}
    }
    return config;
}

}

这是html

        <div class="card card-default">

            <div class="tools">
                <a class="collapse" href="javascript:;"></a>
                <a class="config" data-toggle="modal" href="#grid-config"></a>
                <a class="reload" href="javascript:;"></a>
                <a class="remove" href="javascript:;"></a>
            </div>

            <div class="card-block no-scroll card-toolbar" style="padding:0px;">
                <div class="summernote-wrapper">
                    <div id="summernote" #input></div>
                </div>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

您应该在显示后构建编辑器。


Summernote将寻找建筑物的元素高度和宽度。 如果以不可见模式初始化它,则会出现错误。

// show is before animation and shown is after it.
// if you use tab, there is also a event: shown.bs.tab
$('#collapse').on('shown.bs.collapse', function() {
  $('#summernote').summernote(config);
})