Meteorjs:无法隐藏UI元素

我在这里跟着教程,这是关于在meteorjs中设置会话variables。

但我无法得到榜样工作。 点击隐藏button不会做任何事情。

JS:

Tasks = new Mongo.Collection("tasks"); if (Meteor.isClient) { // This code only runs on the client Template.body.helpers({ tasks: function(){ console.log("function called"); if (Session.get("hideCompleted")) { // If hide completed is checked, filter tasks console.log("success!"); return Tasks.find({checked: {$ne: true}}, {sort: {createdAt: -1}}); } else { console.log("failure!"); // Otherwise, return all of the tasks return Tasks.find({}, {sort: {createdAt: -1}}); } }, hideCompleted: function () { return Session.get("hideCompleted"); } }); Template.body.events({ "submit .new-task": function (event) { // Prevent default browser form submit event.preventDefault(); // Get value from form element var text = event.target.text.value; // Insert a task into the collection Tasks.insert({ text: text, createdAt: new Date() // current time }); // Clear form event.target.text.value = ""; } }); Template.task.events({ "click .toggle-checked": function () { // Set the checked property to the opposite of its current value Tasks.update(this._id, { $set: {checked: ! this.checked} }); }, "click .delete": function () { Tasks.remove(this._id); }, "change .hide-completed input": function (event) { console.log("Changed!"); Session.set("hideCompleted", event.target.checked); } }); } 

HTML:

 <head> <title>Todo List</title> </head> <body> <div class="container"> <header> <h1>Todo List </h1> <label class="hide-completed"> <input type="checkbox" checked="{{hideCompleted}}" /> Hide Completed Tasks </label> <form class="new-task"> <h2> Add a task </h2> <input type="text" name="text" placeholder="Type to add new tasks" /> </form> </header> <ul> {{#each tasks}} {{> task}} {{/each}} </ul> </div> </body> <template name="task"> <li class="{{#if checked}}checked{{/if}}"> <button class="delete">&times;</button> <input type="checkbox" checked="{{checked}}" class="toggle-checked" /> <span class="text">{{text}}</span> </li> </template> 

在开始我的控制台输出如预期:

 function called failure! 

但是在点击hide-completedcheckbox时,不会触发事件(即控制台日志不会更改)。 我错过了什么?

我想说,这可能是因为你在Template.task.events中定义了“切换检查”处理程序,实际上你的checkbox不是“任务”模板的一部分。 把你的处理程序放在正文事件中,应该正确地调用它。