通过模板传递订阅数据

时间:2016-03-08 12:41:23

标签: meteor meteor-blaze

抱歉我的英语。

问题:

我有模板“tempA”订阅“subs1”。从tempA我动态创建“tempB”(Blaze.render)然后我必须再次订阅“sub1”并等待完成?

有一种方法可以在tempB中使用tempA的subs1中的数据吗?

再次感谢和抱歉我的英语。

1 个答案:

答案 0 :(得分:2)

如果您的tempB始终位于tempA内,那么您可以直接查询数据,因为集合是一个被动数据源,每当新数据从服务器传入客户端时,它都会被动地更新帮助程序和UI

如果您想显示加载消息或类似内容,可以使用Blaze.renderWithData将订阅处理程序传递给tempB并传递数据。订阅时保存对此订阅处理程序的引用,

Template.tempA.created = function () {
    var template = this;
    template.handler = template.subscribe('subs1');
}

然后你可以使用像这样的Blaze.renderWithData将此引用传递给tempB

Blaze.renderWithData(Template.tempB, template.handler)

然后,您可以使用tempB中存储的订阅处理程序参考来检查此订阅是否已准备就绪。

我没有尝试过,我从未使用Template.currentData()Blaze.renderWithData,所以我不确定它是否有效。希望它有所帮助。