web-dev-qa-db-ja.com

ドロップゾーンにエラーが発生していますangularディレクティブ)

ドロップゾーンに次のコードを使用していますが、エラーが発生します。デバッグしようとしましたが、このアクションを解決できません。plzガイド

http://jsfiddle.net/anam123/rL6Bh/

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

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

コード::

https://Gist.github.com/compact/811867

断片:

 /**
 * 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) {
      }
    }
  };
});
10
anam

以下のコード設定を使用して問題を解決しました。

したがって、次のいずれかを実行できます。

  1. 次のように、autoDiscoverをグローバルにオフにします。Dropzone.autoDiscover = false;、または
  2. 次のような特定の要素のautoDiscoverをオフにします。Dropzone.options.myAwesomeDropzone = false;

参照:
ドロップゾーンに関するFAQ

22
anam

何も機能しなかったので、dropzone.jsファイルに移動して、エラーをスローする行を変更しました(多くのバージョンでは、426行目にあると思います)。

if (this.element.dropzone) {
    throw new Error("Dropzone already attached.");
  }

だから私は交換します

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

return this.element.dropzone;

そしてそれは働いています

1
Farid Amiri
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);
      });
    }
  });
1
ProgrammerCk

スクリプトでmyDropzoneオブジェクトを有効にして、再度有効にしようとしたため、同じ問題「Dropzoneがすでに添付されています」に直面していました。

例えば

if ($('#upl').attr('class')) {

var myDropzone = new Dropzone("#upl", {init: function () {

そして再びそれを有効にしようとしています

 if (jQuery('#password').attr('save_profile')) {
  var myDropzone = new Dropzone("#upl", {init: function () {

別のアクションで。

コードを確認してください。

0
Atul