1

私がやりたいことは、最初のループ実行によって設定された値に変数を設定することです。

背景情報として: CollectionFS を使用して、流星アプリに複数のファイルをアップロードしています。ここで、すべてのファイル (最初のファイルを除く) に、カスタム フィールドの値parentを最初に挿入されたファイルの ID に設定したいと考えています。でIDを取得しdata._idます。

私の試み:

アップロードされたファイルごとにループを使用しているdataため、最初のファイルは未定義だと思ったので、値があるかどうかを確認します。この場合もparent未定義になります。2 番目のファイルについてdataは、既に設定されているため、その値としてparent取得する必要があります。data._id

parentしかし、いつものように、これは正しく動作しませんundefined:

FS.Utility.eachFile(event, function (file) {
    var newFile          = new FS.File(file),
        parent           = (data) ? data._id : undefined;
        newFile.metadata = { parent: parent };

    var data = Images.insert(newFile);
    console.log(data._id); // id of the inserted file

});
4

1 に答える 1

1

data反復ごとに再定義されています。ループの外で宣言してください。

var data;
FS.Utility.eachFile(event, function(file) { ... });
于 2015-11-19T19:46:28.013 に答える