2016-03-08 81 views
0

对不起,我的英语。通过模板传递订阅数据

问题:

我的模板 “TEMPA” 订阅 “SUBS1”。从tempA创建动态“tempB”(Blaze.render),那么我必须再次订阅“sub1”并等待完成?

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

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

回答

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.renderWithDataBlaze.render,所以我不完全确定它是否有效。希望能帮助到你。