2013-04-13 43 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]");