我正在使用
Template.uploadFile.events({
'change .set-file': function ( event, template ) {
var file = event.currentTarget.files[0];
[...]
}
});
上传文件时。
我想读取文件中的每一行并将每一行作为文档插入到集合中。
问题是我想 react 性地向用户显示已创建了多少行。
首先,我需要将文件中的行数设置为变量。我必须在事件中设置变量,因为我只知道读取文件后的行数(即事件已被触发)。
我想我必须做类似的事情
Template.uploadFile.helpers( {
numRows: function () {
return ?;
},
numInsertedRows: function () {
return ?;
},
} );
插入的行数可能只是我的集合中的文档数;但是,我想在插入集合的同时从集合中读取内存对内存要求很高。
所以我认为最好只使用普通变量,因为所有信息都应该可用而无需询问数据库。
我有一个循环
rowsInFile.forEach( function ( row ) {
// add 1 to number of inserted rows
} );
但是该循环也应该更改 react 变量之一。
我想我应该使用 react 变量。我对吗?这是最有效的内存方法吗?
最佳答案
你可能把事情过于复杂化了。只需 count()
集合中的文档即可:
Template.uploadFile.helpers({
numRows: function(){
return myCollection.find({}).count();
}
});
假设您可以编写一个可靠地找到它们的查询,您可以对插入的数字执行相同的操作。否则,您可以在循环中增加一个 Session 或 reactive 变量并返回它。
关于javascript - 从事件更新 react 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568186/