我正在使用Iron Router从我的AWS S3 Bucket中存储的数据创建ZIP文件。为此,我想查询我的文件,只根据当前模板中的数据上下文将文件放入我的ZIP文件夹。
我当前的数据上下文有两个字段(_id,filetype),用于查询我的FS.Collection。不幸的是,只有_id可用于查询路由器中的文件。我无法将文件类型转换为铁路由器:
我的点击事件:
'click #download': function() {
Router.go('zip.download', {_id: this._id, _Filetype: this.filetype});
}
我的路线:
/*ZIP Files*/
Router.route('/zip/:_id', {
where: 'server',
name: 'zip.download',
action: function() {
console.log(this.params); //Gives me only _id, but not _Filetype
// Create zip
var zip = new JSZip();
MyCollection.find({refrenceID: this.params._id, filetype: this.params._Filetype})
.
.
.
// End Create Zip - This part works
}
});
将数据传递到路由器的最佳方法是什么?
答案 0 :(得分:2)
目前,您的_Filetype
未收到,因为它未在您的路线中声明为有效参数:/zip/:_id
。 (在那里没有提到:_Filetype
)
如果您不想将fileType作为参数放在路线中,您仍然需要以某种方式提供它。这似乎是使用query parameters的好时机!
在您的点击事件中:
'click #download': function() {
Router.go('zip.download', {_id: this._id}, , {query: 'fileType=' + this.filetype});
}
在你的路线中:
/*ZIP Files*/
Router.route('/zip/:_id', {
where: 'server',
name: 'zip.download',
action: function() {
console.log(this.params); //Gives me only _id, but not _Filetype
// Create zip
var zip = new JSZip();
MyCollection.find({refrenceID: this.params._id, filetype: this.params.query.fileType})
.
.
.
// End Create Zip - This part works
}
});