管理 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 许可协议获得许可。