4

我正在使用使用'JQuery'的Angular 4'FroalaEditor '。

我已经成功实施了。现在我需要在该插件中添加自定义按钮。

我找到了以下解决方案

import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import * as $ from 'jquery';

@Component({
  selector: 'app-froala-editor',
  templateUrl: './froala-editor.component.html',
  styleUrls: ['./froala-editor.component.scss'],
  encapsulation: ViewEncapsulation.None
})
export class FroalaEditorComponent implements OnInit {
  options;
  constructor() { }

  ngOnInit(){
    $.FroalaEditor.DefineIcon('alert', {NAME: 'info'});
    $.FroalaEditor.RegisterCommand('alert', {
      title: 'Hello',
      focus: false,
      undo: false,
      refreshAfterCallback: false,
      callback: function () {
        alert('Hello!');
      }
    });

    this.options={
      toolbarButtons: ['bold', 'italic', 'underline', 'paragraphFormat','alert', '|', 'insertLink', 'insertImage', 'specialCharacters', 'color', '|', 'align', 'formatOL', 'formatUL', '|', 'undo', 'redo', 'clearFormatting', 'print'],
    }
  }

}

但我有以下错误。

类型“JQueryStatic”上不存在属性“FroalaEditor”。

我找到了这个解决方案,但我不确定如何实现它。

有人遇到过这个问题吗?

4

4 回答 4

4

对我有用的解决方案是 使用编辑器在组件中的导入之后添加declare var $: any;而不是立即添加。import * as $ from 'jquery';

于 2018-01-08T10:08:56.167 回答
1

我在 Aurelia 上遇到了同样的问题,我通过这样做解决了这个问题:

$['FroalaEditor'].DefineIcon('alert', {NAME: 'info'});
于 2017-12-04T17:58:16.313 回答
0

在你的代码中添加这个:

interface JQueryStatic {
    FroalaEditor: any;
}
于 2017-11-10T12:57:51.613 回答
0

对我来说,上面的答案都没有帮助,但在某个地方我得到了这个:

(<any>$('div#froala')).froalaEditor('html.get');

终于奏效了。所以只需包装 $

(<any>$).FroalaEditor.DefineIcon('alert', {NAME: 'info'});

没有它,代码确实可以工作,但是我在 ionic 2 上,每次我执行 ionic:serve 但重新加载时都没有出现错误。我不知道为什么,但现在它消失了。

于 2018-07-11T22:28:56.270 回答