跳到内容

管理 CKEditor 加载

编辑此页

默认情况下,为了快速原型化您的表单,当您声明一个 CKEditor 表单时,该 bundle 每次都会加载 CKEditor 库。基本上,这意味着如果您在表单中有三个 CKEditor 字段,那么将会有三个 CKEditor 库加载。

手动加载 CKEditor

如果您想控制 CKEditor 加载,您可以配置该 bundle 完全不加载库,并让您控制它。要禁用 CKEditor 库加载,您可以在全局配置中进行设置

1
2
3
# app/config/config.yml
fos_ck_editor:
    autoload: false

或者您可以在您的 widget 中禁用它

1
$builder->add('field', 'ckeditor', ['autoload' => false]);

注意

如果您使用这种方法,请注意 CKEditor 必须在任何字段渲染之前加载,因此我们建议您将其注册在您页面的 <head> 中。

异步加载 CKEditor

如果您想在页面底部加载 CKEditor,最好的方法仍然是禁用 CKEditor 加载(为了让您只在页面底部加载一次 CKEditor),同时也配置该 bundle 使用名为 IvoryFormExtraBundle 的第三方 bundle 中提供的专用函数来稍后渲染 javascript。

所以,首先您需要配置该 bundle。您可以在全局配置中进行设置

1
2
3
4
# app/config/config.yml
fos_ck_editor:
    autoload: false
    async: true

或者您可以在您的 widget 中配置它

1
2
3
4
$builder->add('field', 'ckeditor', [
    'autoload' => false,
    'async'    => true,
]);

然后,按照其文档中的说明安装第三方 bundle。

最后,在您的 Twig 模板中,您可以使用以下代码渲染表单 javascript

1
{{ form_javascript(form) }}

或者如果您使用 PHP 模板引擎

1
<?php echo $view['ivory_form_extra']->javascript($form) ?>

注意

如果您使用这种方法,请注意 CKEditor 必须在您渲染表单 javascript 之前加载。

本作品,包括代码示例,根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本