Meteor发布和订阅路由

时间:2016-01-07 21:16:42

标签: javascript meteor

嘿我正在尝试在流星中设置链接显示页面,但数据永远不会进入视图。这是一个很好的工厂运行,但我删除自动发布,任何想法后似乎无法得到它?

由于

铁路由器文件

Router.route('/show/:_id',{
    template: "show",
    name: "show",
    data: function(){
      return Links.findOne({_id: this.params._id});
    },    
    subscriptions: function(){
      return Meteor.subscribe('links', this.params._id);
    }
});

服务器端

Meteor.startup(function() {

    Meteor.publish('links', function(currentLink){
      return Links.find({ _id: currentLink })
    });

});

模板

<template name="show">
  {{info}}
</template>

集合

Links = new Mongo.Collection("links");

2 个答案:

答案 0 :(得分:3)

在路由器中,尝试使用waitOn参数。 http://iron-meteor.github.io/iron-router/#the-waiton-option

Router.route('/show/:_id',{
    template: "show",
    name: "show",
    data: function(){
      return Links.findOne({_id: this.params._id});
    },    
    waitOn: function(){
      return Meteor.subscribe('links', this.params._id);
    }
});

答案 1 :(得分:1)

我更喜欢使用帮助器而不是数据功能。尝试使用帮助程序将集合连接到模板。 {{info}}将在下面的代码中调用info helper,返回Links集合中的所有对象:

Template.show.helpers({
    info: function() {
        return Links.find().fetch();
    }
});

您的Link对象是什么样的?它有&#34;信息&#34;场?