如何在Blaze模板或模板助手中获取“根”数据

时间:2015-02-17 12:15:40

标签: templates meteor meteor-blaze

假设我必须使用包含相同嵌套模板的页面:

Page1:

>rootTeplate
  >fooTemplate
    >barTemplate

2页:

>rootTeplate
  >barTemplate

如何编写模板助手,允许我在barTemplate中访问rootTemplate的数据?我知道我可以使用../访问父上下文,但在这种情况下,barTemplate不知道它必须返回多少级别。

2 个答案:

答案 0 :(得分:1)

您需要确定要返回多少级别。在barTemplate的帮助中,您可以使用Template.parentData

Template.barTemplate.helpers({
     something: function() {
         var parentDatas = Template.parentData()

         //If there are two levels
         var parentDatas = Template.parentData(2)
     }
});

您需要确定要访问的级别数,并且可以将此号码插入Template.parentData

如果您不确定需要返回多少级别,则可能不值得使用此范例。请考虑使用路由器中的data上下文或Session哈希。

答案 1 :(得分:1)

在这种情况下,您可以使用Router.current()。data()从iron:router访问数据上下文。

Template.barTemplate.helpers({
  var data = Router.current() && Router.current().data();
  if(data)
    // use it