如何在运行时构建Meteor模板?

时间:2014-11-30 06:41:06

标签: meteor spacebars

我可以在服务器上动态构建模板并将结果发送给客户端吗?我发现SpacebarsCompiler.compile()返回一个表示render函数的字符串,但是如何将它转换为模板?

1 个答案:

答案 0 :(得分:0)

你可以试试这个,

/**
* @contextObject the object you want to evaluate in your template
* @templateName the name of you template <template name="">
* return html rendered.
*/

function renderTemplate(contextObject, templateName){
   return Blaze.toHTML(Blaze.With(contextObject, function() { return Template[templateName]; }));
}

我不是在客户端使用它我不确定是否可以在服务器端工作,但你可以尝试一下。

如果您有模板html,如

<template name="thisIsMyTemplateName">
  <div>
    {{name}}
  </div>
</template>

然后,如果你有像var myobject = { name : "my name" }

这样的对象

你可以使用像

这样的功能

myHtml = renderTemplate(myobject, "thisIsMyTemplateName");

你会得到你可以追加或做任何你喜欢的简单html

$(document).append(myhtml);