2013-09-06 34 views
12

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.

Trả lời

2

Hình như bạn tìm thấy câu trả lời/giải quyết điều này, nhưng chỉ trong trường hợp, tôi nghĩ rằng đó là trong findOne tuyên bố của bạn:

data: function() {   
     return POLL.findOne(this.params._PostId); 
    }, 

nên đọc:

data: function() {   
     return POLL.findOne({_id:this.params._PostId}); 
    }, 

(giả sử POLL có của bạn các bài đăng được liệt kê theo _id.

Hy vọng điều đó sẽ giúp ích:

0

Bạn có thể chuyển thông tin trong Phiên không? tài liệu cho các tài liệu đó là ở đây http://docs.meteor.com/#session. Đó là những gì tôi định làm.

+0

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. –

+0

Phiên không được duy trì giữa các tuyến đường. – Joseph

+3

Phiên là đối tượng liên tục trên toàn cầu! –

Các vấn đề liên quan