Javascript 获取已附加角度指令的错误Dropzone

Javascript 获取已附加角度指令的错误Dropzone,javascript,angularjs,dropzone.js,Javascript,Angularjs,Dropzone.js,我正在为drop zone使用以下代码,但我遇到了错误,我尝试调试它,但无法解决此操作plz指南 -------------------> "Error: Dropzone already attached. throw new Error("Dropzone already attached.");" 代码:: 剪报: /** * An AngularJS directive for Dropzone.js, http://www.dropzonejs.com/ *

我正在为drop zone使用以下代码,但我遇到了错误,我尝试调试它,但无法解决此操作plz指南

 -------------------> "Error: Dropzone already attached.

  throw new Error("Dropzone already attached.");" 
代码::

剪报:

 /**
 * An AngularJS directive for Dropzone.js, http://www.dropzonejs.com/
 * 
 * Usage:
 * 
 * <div ng-app="app" ng-controller="SomeCtrl">
 *   <button dropzone="dropzoneConfig">
 *     Drag and drop files here or click to upload
 *   </button>
 * </div>
 */

angular.module('dropzone', []).directive('dropzone', function () {
  return function (scope, element, attrs) {
    var config, dropzone;

    config = scope[attrs.dropzone];

    // create a Dropzone for the element with the given options
    dropzone = new Dropzone(element[0], config.options);

    // bind the given event handlers
    _.each(config.eventHandlers, function (handler, event) {
      dropzone.on(event, handler);
    });
  };
});

angular.module('app', ['dropzone']);

angular.module('app').controller('SomeCtrl', function ($scope) {
  $scope.dropzoneConfig = {
    'options': { // passed into the Dropzone constructor
      'url': 'upload.php'
    },
    'eventHandlers': {
      'sending': function (file, xhr, formData) {
      },
      'success': function (file, response) {
      }
    }
  };
});
/**
*Dropzone.js的AngularJS指令,http://www.dropzonejs.com/
* 
*用法:
* 
* 
*   
*将文件拖放到此处或单击以上载
*   
* 
*/
角度。模块('dropzone',[])。指令('dropzone',函数(){
返回函数(范围、元素、属性){
变量配置,dropzone;
config=scope[attrs.dropzone];
//使用给定选项为元素创建Dropzone
dropzone=新的dropzone(元素[0],配置选项);
//绑定给定的事件处理程序
_.each(config.eventHandlers,函数(handler,事件){
on(事件,处理程序);
});
};
});
角度模块('app',['dropzone']);
角度。模块('app')。控制器('SomeCtrl',函数($scope){
$scope.dropzoneConfig={
'options':{//已传递到Dropzone构造函数中
“url”:“upload.php”
},
“事件处理程序”:{
“发送”:函数(文件、xhr、formData){
},
“成功”:函数(文件、响应){
}
}
};
});

使用以下代码设置解决了问题

因此,您可以:

  • 全局关闭自动发现,如下所示:
    Dropzone.autoDiscover=false,或
  • 关闭特定元素的自动发现,如 这:
    Dropzone.options.myAwesomeDropzone=false
  • 参考资料:

    我面临同样的问题“Dropzone已连接”,因为我们在脚本中启用了
    myDropzone
    对象,并试图再次启用

    比如说

    if ($('#upl').attr('class')) {
    
    var myDropzone = new Dropzone("#upl", {init: function () {
    
    再次尝试启用它

     if (jQuery('#password').attr('save_profile')) {
      var myDropzone = new Dropzone("#upl", {init: function () {
    
    用另一个动作


    请检查您的密码

    将创建dropzone代码放入try/catch块中

    Dropzone.autoDiscover = false;
    $('#bannerupload').dropzone({
        url: "/upload",
        maxFilesize: 100,
        paramName: "file",
        maxThumbnailFilesize: 5,
        init: function() {      
          this.on('success', function(file, json) {       
            jQuery("input#mediaid").val(json);
          });
        }
      });
    
    try{
     $('.dropzone').dropzone({
        url: '/upload'
      });
    }
    catch(error){
        console.log("Catching " + error);
    }
    

    没有任何东西对我有效,所以我转到dropzone.js文件并更改引发错误的行(我认为在许多版本中,它位于第426行):

    所以我换了

    throw new Error("Dropzone already attached.");
    

    return this.element.dropzone;
    

    它正在发挥作用

    我面临着同样的问题。。。我尝试了
    Dropzone.autoDiscover=false和其他选项也是。。。但我也犯了同样的错误,我最终放弃了。刚才注释掉了dropzone.js
    dropzone中的函数。_autoDiscoverFunction=function(){if(dropzone.autoDiscover){return dropzone.discover();}这应该是正确答案。我也遇到过类似的问题,在每个dropzone实例解决之前都使用了这个函数。我不知道为什么会被否决,它对我很有效。Dropzone.autoDiscover=false;在代码的其余部分之前,这是所有需要的。当然,这是可行的,我测试并实现了这一点myself@ProgrammerCk-是的,谁会怀疑一个有16个名声、不正确的大写和标点符号的人?Dropzone.instances有Dropzone附加的实例。你可以检查一下。
    
    return this.element.dropzone;