Laravel Backpack 同一个自定义 field 组件在单页内多次出现的处理

更新日期: 2018-02-27 阅读次数: 5287 分类: Laravel

Bug 描述

之前写了个自定义的 summernote 富文本框组件,可以将插入图片自动同步到七牛 CDN。

但是,如果页面中使用了两个该组件,第二个文本框插入的图片都会插入到第一个中。。。

问题产生的原因是,使用的是 class 选择器,都选择了 .summernote

解决方法

解决思路非常简单,为每个组件定义不同的 ID。

令人浑身发痒的地方是,需要在 js 里嵌入 PHP 代码

HTML 部分

<textarea
    id="summernote_{{ $field['name'] }}"
  name="{{ $field['name'] }}"
  @include('crud::inc.field_attributes', ['default_class' =>  'form-control summernote'])
...

HTML 中的 js 部分

$("#summernote_{{ $field['name'] }}").summernote({
  lang: 'zh-CN',
  height: 600,
  callbacks: {
...
```

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式