使用jquery插件查看backbone.js

时间:2012-09-11 02:38:34

标签: javascript jquery backbone.js underscore.js

我发现很少有类似的问题,但没有一个对我有用...... 我有jquery插件加载了require.js(它在视图脚本之后加载)我需要在输入更改时访问它的方法,我确实尝试在reder中执行它但是它是相同的。这就是我到目前为止所拥有的。

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

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

Object [object Object]没有方法'loadImage'

2 个答案:

答案 0 :(得分:1)

结果可以从骨干视图访问脚本IS。问题是插件试图访问窗口对象的方式。我使用了不同的脚本,效果很好。这就是我用过的东西:

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
}

答案 1 :(得分:0)

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