2012-09-11 27 views
0

我發現幾個類似的問題,但他們都沒有爲我工作... 我有jquery插件加載require.js(它加載後視圖腳本),我需要訪問其方法輸入改變,我確實試圖用reder來做,但它是一樣的。這是我迄今爲止所做的。backbone.js視圖與jquery插件

events: { 
    "change #signageUploadInput": "loadingImage" 
}, 

loadingImage: function(event) { 
    $('body').loadImage(
     event.target.files[0], 
     function (img) { 
      document.body.appendChild(img); 
     }, 
     {maxWidth: 600} 
    ); 
} 

對象的翻譯:有沒有方法「的LoadImage」

+0

刪除我的答案。無法閱讀您正在使用插件。我可以問你使用的插件嗎? – jmk2142

+0

我使用這個插件https://github.com/blueimp/JavaScript-Load-Image – alexndm

回答

0

當這個錯誤來了,當你加載頁面,或在您的骨幹事件觸發?因爲如果是在頁面加載的時候,Backbone可能會在require.js加載你的插件文件之前試圖通過並編譯你所有的事件和函數。需要一些更多的信息來解決這個問題,但是你可以在JavaScript文件中使用require.js發佈你正在加載的部分嗎?

+0

錯誤發生在正確的時間:)在輸入改變,所以這意味着它的反應,當我需要它,但不能訪問插件的代碼 – alexndm

+1

只要看看他們的API文檔,你確定它與jQuery兼容嗎?它看起來不像一個jQuery插件,只是對用於加載圖像的'window'對象的擴展。這就解釋了你的Object [object Object]也沒有方法的'loadImage'錯誤,因爲如果它是一個插件就沒有問題。也許嘗試相同的事情,但使用相同的代碼作爲他們的API文檔,所以'window.loadImage()'。 –

+0

它爲window.loadImage() – alexndm

1

表示腳本可以從骨幹視圖訪問。問題是插件嘗試訪問窗口對象的方式。我使用了不同的腳本,它運行良好。這就是我用什麼:

uploader.js

function my_uploader(evt) { 
    var files = evt.target.files; // FileList object 

    // Loop through the FileList and render image files as thumbnails. 
    for (var i = 0, f; f = files[i]; i++) { 

     // Only process image files. 
     if (!f.type.match('image.*')) { 
      continue; 
     } 

     var reader = new FileReader(); 

     // Closure to capture the file information. 
     reader.onload = (function(theFile) { 
      return function(e) { 
       // Render thumbnail. 
       var span = document.createElement('span'); 
       span.innerHTML = ['<img class="thumb" src="', e.target.result, 
            '" title="', escape(theFile.name), '"/>'].join(''); 
       document.getElementById('list').insertBefore(span, null); 
      }; 
     })(f); 

     // Read in the image file as a data URL. 
     reader.readAsDataURL(f); 
    } 
} 

骨幹視圖腳本

events: { 
    "change #signageUploadInput": "loadImage", 
}, 
loadImage: function(evt) { 
    my_uploader(evt); //script is inside fileuploader.js 
} 
+0

做同樣的事情很高興你知道了! –