2013-04-13 44 views
0

我有以下代码来上传一个工作正常的个人资料照片。我也有很多不同的情况(上传图标,徽标等),这可能会导致很多重复。如何重构此javascript代码的许多实例化

var myDropzone; 

myDropzone = new Dropzone("div#profilePhoto", { 
    url: "/attachments", 
    paramName: "attachment[file]" 
}); 

myDropzone.on("sending", function(file, xhr) { 
    return $.rails.CSRFProtection(xhr); 
}); 

我的问题是我怎么能重构这个代码,以尽可能通用还允许我根据其ID传递细节选项(URL,PARAMNAME等)?

回答

4

我们不知道很多关于你正在使用的文意,但我相信这样的功能可以工作:

function createDropzone(selector, url, paramName) { 
    var myDropzone = new Dropzone(selector, { 
     url: url, 
     paramName: paramName 
    }); 

    myDropzone.on("sending", function(file, xhr) { 
     return $.rails.CSRFProtection(xhr); 
    }); 
} 

你会这样称呼它:

createDropzone("div#profilePhoto", "/attachments", "attachment[file]");