2015-07-07 4 views
0

Я использую Iron Router для создания ZIP-файлов из данных, хранящихся в моем ковре AWS S3. Для этого я хотел бы запросить мои файлы и поместить файлы в свою ZIP-папку на основе контекста данных в моем текущем шаблоне.Отправленные данные маршрутизатору при событии click

В моем текущем контексте данных есть два поля (_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 
    } 
}); 

Что лучший способ передачи данных к маршрутизатору?

ответ

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 
    } 
}); 
+0

Большое спасибо. Объект вместо строки работал слишком btw. '{query: {_ id: this._id, filetype: this.filetype}}' –

+0

О! Хорошо. Да, кажется, более чистое использование и объект. – SylvainB

Смежные вопросы