问题:
我有模板“tempA”订阅“subs1”。从tempA我动态创建“tempB”(Blaze.render)然后我必须再次订阅“sub1”并等待完成?
有一种方法可以在tempB中使用tempA的subs1中的数据吗?
再次感谢和抱歉我的英语。
答案 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
,所以我不确定它是否有效。希望它有所帮助。