0

我发现了一些类似的问题,但没有一个对我有用...我有加载了 require.js 的 jquery 插件(它在查看脚本后加载),我需要在输入更改时访问它的方法,我确实尝试过用 reder但它是一样的。这就是我到目前为止所拥有的。

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

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

对象 [对象对象] 没有方法 'loadImage'

4

2 回答 2

1

原来脚本可以从主干视图访问。问题在于插件尝试访问窗口对象的方式。我使用了不同的脚本,效果很好。这就是我用的:

上传者.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
}
于 2012-09-11T20:39:40.580 回答
0

当您加载页面或触发 Backbone 事件时,何时会出现此错误?因为如果是在页面加载时,Backbone 可能会在 require.js 加载您的插件文件之前尝试通过并编译您的所有事件和函数。不过,需要更多信息来解决这个问题,您能否使用 require.js 在 JavaScript 文件中发布您正在加载的部分?

于 2012-09-11T04:11:30.467 回答