将循环中的值设置为在第一个循环执行中设置的值
Set value in a loop to a value which is set in the first loop execution
我想做的是将一个变量设置为由第一个循环执行设置的值。
作为背景信息:我正在使用 CollectionFS 在我的流星应用程序中上传多个文件。现在我想将所有文件(第一个文件除外)的自定义字段值 parent
设置为第一个插入文件的 ID。
我通过 data._id
.
获取 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
});
data
在每次迭代中都被重新定义。在循环外声明它。
var data;
FS.Utility.eachFile(event, function(file) { ... });
我想做的是将一个变量设置为由第一个循环执行设置的值。
作为背景信息:我正在使用 CollectionFS 在我的流星应用程序中上传多个文件。现在我想将所有文件(第一个文件除外)的自定义字段值 parent
设置为第一个插入文件的 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
});
data
在每次迭代中都被重新定义。在循环外声明它。
var data;
FS.Utility.eachFile(event, function(file) { ... });