Làm cách nào để chuyển dữ liệu giữa hai tuyến và mẫu khác nhau?Bộ định tuyến Meteor Iron: Truyền dữ liệu giữa các tuyến
Tôi có tệp javascript ở mặt trước (thư mục ứng dụng khách) mà chỉ cần gọi Router.go() chuyển trong ID bài đăng là một trong các tham số của tôi.
Dưới đây là ba thủ phạm chính (tôi tin). Tôi đã xóa hầu hết mã để dễ đọc hơn. Tôi có thể thay đổi thành trang PostDetail mà không gặp vấn đề gì. Tôi cũng có thể truy xuất PostId trên trang PostDetail từ Bộ định tuyến. Vấn đề của tôi là, mục nhập cơ sở dữ liệu (POLL) được truy xuất không được hiển thị trên mẫu. Do đó {{Question}} luôn trống khi mục nhập cơ sở dữ liệu được trả về.
Hãy cho tôi biết nếu tôi nên đăng thêm thông tin.
FrontEnd.js
Template.PostTiles.events({
// When a choice is selected
'click .pin' : function(event, template) {
Router.go('Post', {_PostId: this.PostId});
}
});
hậu detail.html
<template name="PostDetail">
<h3>{{Question}}</p>
</template>
Shared.js
Router.map(function() {
this.route('Home', {
path: '/',
template: 'PostTiles',
data: {
// Here we can return DB data instead of attaching
// a helper method to the Template object
QuestionsList: function() {
return POLL.find().fetch();
}
}
});
this.route('Post', {
template: 'PostDetail',
path: '/Post/:_PostId',
data: function() {
return POLL.findOne(this.params._PostId);
},
renderTemplates: {
'disqus': {to: 'comments'}
}
});
});
----- Cập nhật -----
Tôi nghĩ rằng tôi đã thu hẹp vấn đề chỉ đơn giản là có thể chỉ hiển thị một mục nhập Cơ sở dữ liệu, thay vì danh sách trong số đó bằng cách sử dụng {{#each SomeList}} Cú pháp.
Tôi nghĩ phiên là một cách tốt trong ge neral để truyền dữ liệu xung quanh nhưng trong trường hợp này nó là vấn đề về cú pháp. –
Phiên không được duy trì giữa các tuyến đường. – Joseph
Phiên là đối tượng liên tục trên toàn cầu! –