1

跟进这个问题/答案(第二个答案)在 Meteor.js 中动态加载模板

我已经在当前显示的模板中设置了一个助手,并且我正在动态返回模板。这很好用。

Template.template1.helpers({

    dynamicView: function(){
        return Template['dynamic_template']();
    }
})

这最终在模板 1 中显示了我的 html:

问题:

  1. 我如何在创建此模板时将数据传递给它,我可以执行以下操作:

    模板['dynamic_template'](data1, jsonData2);

  2. 我希望dynamicViewtemplate1 中的助手也是动态的,因为它可以根据其他一些标准具有不同的模板。我可以在这里使用 Session 并将 dynamicView 返回语句更改为如下所示:

    dynamicView: function(){ return Session.get('dynamicTemplate'); }

和其他地方Session.set('dynamicTemplate', Template['dynamic_template']());这工作,但它是推荐的。它只是一个字符串,但我担心性能问题和我的模板的大小被被动传递

4

1 回答 1

3

好的,我想我必须将我的答案分开:

与 1。

模板是已编译的车把模板,因此您只需为它们提供上下文,以便可以填充车把数据:

data = {name1:value1, name2:value2}
return Template['dynamic_template'](data);

这样{{name1}}和分别{{name2}}填满value1value2

与 2。

是的,这应该可以,您可以传递任何会导致 HTML 的数据。有关非常详细的视频广播,请查看有关模板功能的 EventedMind 截屏视频:http ://www.eventedmind.com/posts/meteor-rendering-template-functions

The template system's use case might not be this exactly. You might want to use Meteor.render instead, but it depends on what you want to do.

Despite the Session name, its just a reactive javascript variable so it should be fine with larger strings too to the same that would be used in an ordinary javascript variable

于 2013-04-23T01:06:44.573 回答