0

同様の質問はほとんど見つかりませんでしたが、どれもうまくいきませんでした... require.jsをロードしたjqueryプラグインがあり(ビュースクリプトの後にロードされます)、入力変更時にそのメソッドにアクセスする必要があります。しかし、それは同じです。それが私がこれまで持っているものです。

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

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

オブジェクト [object Object] にはメソッド「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

このエラーが発生するのはいつですか、ページをロードするとき、またはバックボーンイベントが発生するときですか?ページが読み込まれるときは、require.jsがプラグインファイルを読み込む前に、Backboneがすべてのイベントと関数を調べてコンパイルしようとしている可能性があるためです。これを理解するためにもう少し情報が必要ですが、JavaScriptファイルにロードしている部分をrequire.jsで投稿できますか?

于 2012-09-11T04:11:30.467 に答える