使用模板

时间:2018-05-15 07:18:32

标签: javascript laravel laravel-5 dropzone.js

我有一个Laravel项目,我使用这个模板:

https://wrappixel.com/demos/admin-templates/monster-admin/main/form-dropzone.html

在我的项目中,我放了我的dropzone表单,它的工作方式与我想要的一样,但我希望在上传文件时添加成功事件。所以在我的custom.js中我做了:

require('./bootstrap');
require('../vendor/monster_admin/assets/plugins/dropzone-master/dist/dropzone.js');

$( document ).ready(function() {
  //dropzone.js file upload success
  Dropzone.options.dropzone = {
    init: function() {
      console.log('1');
    }
  };
}); 

但我收到错误:Dropzone未定义。

如果我尝试使用模板页面打开控制台并访问Dropzone对象,它可以正常工作,但不在我的页面上。

有人知道如何访问dropzone对象吗?

如果需要,我的html表单:

{!! Form::open(['route' => ['admin.upload', class_basename($model), $model->id], 'method' => 'POST', 'class' => 'form-horizontal dropzone dz-clickable', 'id' => 'dropzone', 'files' => TRUE]) !!}

    <div class="dz-default dz-message"><span>Drop files here to upload</span></div></form>

{!! Form::close() !!}

编辑:

我发现了这个:

 if (typeof module !== "undefined" && module !== null) {
    module.exports = Dropzone;
  } else {
    window.Dropzone = Dropzone;
  }

所以我的项目输入if但我想进入else(不更改模板文件)。谁知道这个模块是什么东西?这里没有使用例外。

1 个答案:

答案 0 :(得分:0)

终于找到了解决方案,这个如果

 if (typeof module !== "undefined" && module !== null) {
    module.exports = Dropzone;
  } else {
    window.Dropzone = Dropzone;
  }

在模块中导出Dropzone,我需要在我的custom.js中包含(文件顶部而不是document.ready)

import * as Dropzone from '../vendor/monster_admin/assets/plugins/dropzone-master/dist/dropzone.js';

这是一个node.js的东西(我认为因为我在教程中读到它但我从不使用node.js)。