我有一个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(不更改模板文件)。谁知道这个模块是什么东西?这里没有使用例外。
答案 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)。