CKEditor bower全局默认config.js

时间:2016-04-08 11:28:53

标签: angularjs ckeditor bower

我有一个角度项目,我们使用angular-ckeditor。对于这个角度模块,我需要ckeditor.js,我通过凉亭安装。现在我们有多个页面,我们有ckeditor实例,但它们都应该使用相同的配置。

使用CKEditor,您可以更改默认配置by changing the config.js。然而,这不是一个好的选择,因为当部署/共享/重新安装应用程序时,bower会安装ckeditor脚本,因此config.js也会被覆盖。

我知道我可以执行类似CKEDITOR.replace('myEditor', { customConfig: '/custom/path/to/config/ckeditor_config.js' });的操作,但这样会是每个实例,另外我在运行时不知道编辑器的id是什么。

有没有其他方法可以为CKEditor定义全局配置?没有触及其库中的config.js?

我可能的丑陋解决方案:

  1. 检查源代码管理中的CKEditor脚本,不要通过bower安装(因此不会覆盖config.js)
  2. 创建一个自定义指令,仅使用ckeditor和customConfig配置替换该指令
  3. 创建一个gulp任务,在凉亭安装后覆盖config.js
  4. 将ID添加到所有ckeditors并使用CKEditor.replace()方法
  5. 将配置传递给ckeditor(<textarea ckeditor="{ customConfig: 'myCustomConfig' }"></textarea>
  6. 的每个实例
  7. 使用我在文档中遗漏但确实存在的方法(首选!:)
  8. 对此最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

我将ckeditor.config.js添加到index.html(我的项目使用Grunt) 并链接到ckeditor_config.js

&#13;
&#13;
// scripts/libs/ckeditor.config.js
CKEDITOR.config.customConfig = "/scripts/libs/ckeditor_config.js";

// scripts/libs/ckeditor_config.js
CKEDITOR.editorConfig = function (config) {
  config.toolbarGroups = [
    { name: 'mode' },
    { name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
    { name: 'editing',     groups: [ 'find' ] },
    { name: 'basicstyles', groups: [ 'basicstyles' ] },
    { name: 'links' },
    { name: 'styles' },
    { name: 'cleanup' }
  ];
	config.removeButtons = 'Anchor,Strike,Styles,Font';
  //config.removePlugins = 'font';
  config.extraPlugins = "find,font";
}
&#13;
<!-- index.html -->
<script src="bower_components/ckeditor/ckeditor.js"></script>
<script src="scripts/libs/ckeditor.config.js"></script>
&#13;
&#13;
&#13;