如何使用javascript渲染模板值 - Meteor

时间:2013-04-15 06:10:59

标签: javascript templates dynamic meteor render

如何呈现模板的内容..我可以通过这一点:/感谢您的帮助

示例:

<body>
  {{> dash}}
</body>

<template name="dash">
<div id="example2" class='example_block'> 
    <form name = "frm">
        <table>
            <tr>
                <td>Template Name
                <td>:
                <td><input type="text" name = tname class = "tname">
      </frm>
       <div class='demo'>
            <input type='button' value='Click Here to Create Window' class="btn"/> 
        </div> 
    </div>
<div id = "window_block8" style="display:none;"></div>
</template>

<template name="t1">
    try1
</template>

<template  name="t2">
    try2 
</template>

   //client.js
 Template.dash.events({
'click input.btn' : function(){
    var temp = document.frm.tname.value ;
    Session.set("template" , temp);
            $('body').append(Meteor.render(Template[Session.get("currentTemplate")]()));
     }
 });

这样的事情......但那段代码对我不起作用

1 个答案:

答案 0 :(得分:5)

Meteor.render(Template.try)返回一个文档片段,您可以使用jQuery或vanilla JS将其插入到页面中。

e.g

Template.dash.aw = function() {
    document.body.appendChild(Meteor.render(Template.try));
}

请注意,如果模板名称是可变的,则可以使用数组样式表示法:

document.body.appendChild(Meteor.render(Template[Session.get("currentTemplate")]));

或者,如果您只想返回变量而不是整个模板:

Template.try.var = function() {
    return 'Hello';
}
Template.dash.aw = function() {
    return Template.try.var();
}
// Template.dash.aw = Template.try.var = function() {
//    return 'Hello';
// }

评论函数可能不够用,因为您需要Template.dash.aw

中的某些逻辑