2016-03-24 12 views
0

のプロパティを読み取ることができない私は、私が追加した以下のキャッチされない例外TypeErrorは、私は2 javascript.Oneを持っている未定義

var FileUpload=(function(fileElement){ 

    //code goes here other functions and stuff 

function fileread(event){ 

     //code goes here 

    } 
return 
     { 
     files:fileread// assign fileread as property and return 
     }; 



}(document.getElementById('up'))) 

のようなjsのモジュールを持っているi「はregister.js'.Thereと呼ばれる画像ファイルを読み込むためのものです「のonChange」イベントが

function load(){ 
     console.log(FileUpload.files); 
     document.getElementById('up').addEventListener('change',FileUpload.files,false); 
     } 
     window.onload=load; 

を発生したときに、ファイルを読み取るためにするFileUploadオブジェクトを使用しますが「call.js」と呼ばれる別のファイル私はこのエラーを修正することができますerror.How以下の私が手のコードを実行どこ?

create:115 Uncaught TypeError: Cannot read property 'files' of undefined

+0

あなたは何とかロード関数にするFileUploadに渡す必要があります...それはそれはどのようにあなたがいることを渡している、ことを見つけることができないと言いますか?なぜ2つの別々のファイルにありますか? – JordanHendrix

+0

私はファイルアップロード機能のための別のモジュールを作成したい –

答えて

0

私はあなたがmodule.exportsrequireを使用することを忘れてしまった推測しています。 register.jsの終わりには、追加:

module.exports = FileUpload; 

call.jsの開始時に、追加:

var FileUpload = require('./register'); 

あなたはregister.jsにディレクトリであることを./registerを変更する必要があります。 .js拡張子は、ノードがjavascriptファイルを想定するため省略することができます。

+0

しかし、私は同じページに2つのスクリプトを追加しました。それはそのように動作しませんか? –

+0

これは良い答えではありません、彼は適切なビルドツール、すなわちWebpackを使用していない限り、フロントエンドで自動的に動作する必要はありません... – JordanHendrix

0

これが問題である::JavaScriptで

return 
     { 
     files:fileread// assign fileread as property and return 
     }; 

セミコロンはそう、それはあなたがリターン{FILEREADファイル}にしたいということを知りませんオプションです。それは返品が1つのステートメントで、{files:fileread}だと思います。は別のステートメントです。

これに変更し、すべてが動作するはずです:

return { 
    files:fileread// assign fileread as property and return 
}; 
関連する問題