1

我想要做的是将变量设置为由第一个循环执行设置的值。

作为背景信息:我正在使用 CollectionFS 在我的流星应用程序中上传多个文件。现在我想将所有文件(除了第一个文件)的自定义字段值parent设置为第一个插入文件的 id。我得到了 id data._id

我的尝试:

由于我为每个上传的文件使用循环,我认为data第一个文件是未定义的,所以我检查它是否有值。在这种情况下,也parent将是未定义的。对于第二个文件,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 回答