使用模板事件在另一个模板中触发响应

时间:2013-03-05 06:47:26

标签: javascript meteor

当模板中发生事件时,我想在另一个模板中执行某些操作。

这是我的代码:

客户端html:

    <body>
      Navigation:
      {{> navigation}}
      =======================================================
      Body:
      {{> body}}
    </body>


     <template name="navigation">
      <input type="button" value="MenuBtn" />
    </template>
    <template name="body">
     {{content}}
    </template>

JavaScript的:


    Template.navigation.events({
        'click' : function (e) {    

            //Nothing happened in {{body}}
            Template.body.content = function(){
             // i want to do something... like query database
             // maybe, just a example : return peple.find({"name":e.currenTarget.value});                   
              return "hello";       
            };          

        } });

对我做错了什么的想法?

1 个答案:

答案 0 :(得分:3)

使用把手将数据传递给模板,以便模板系统知道何时重绘html

客户端JS

Template.body.content = function() {
    return Session.get("content") || "Hi there, click the button" 
};

Template.navigation.events({
    'click' : function () {     
        alert("1");// it's normal       
        Session.set("content", "<h1>HELLO!!!! '+ people.findOne({"name":e.currenTarget.value}).name || " unregisterd person" + '</h1>");         
        alert("2");//it's normal
    }
});

我还假设你要做一些HTMLey,你不希望它被转义,所以一定要使用:

<template name="body">
    {{{content}}}
</template>