我目前正在遵循这流星教程,在教程#7中,关于会话我有这样的代码,当选中复选框时,应该只为当前用户隐藏todos,但它不是。我看不出有什么效果。如有可能,请提供协助,问候。
Resolutions = new Mongo.Collection("resolutions");
if (Meteor.isClient) {
Template.body.helpers({
'resolutions': function() {
if (Session.get("hideFinished")){
return Resolutions.find({checked: {$ne: true}});
} else {
return Resolutions.find();
}
},
'hideFinished': function(){
return Session.get("hideFinished");
}
});
Template.body.events({
'submit .new-resolution': function(event) {
var title = event.target.title.value;
Resolutions.insert({
title: title,
createdAt: new Date()
});
return false;
},
'change .hide-finished': function(event){
Session.set("hideFinished", event.target.checked);
}
});
Template.resolution.events({
"click .toggle-checked": function(){
Resolutions.update(this._id, {$set:{
checked: !this.checked
}});
},
"click .delete": function() {
Resolutions.remove(this._id);
console.log("remove");
}
});
}
if (Meteor.isServer) {
Meteor.startup(function() {
// code to run on server at startup
});
}<head>
<title>resolutions</title>
</head>
<body>
<div class="container">
<header>
<h1>Monthly Resolutions</h1>
<label class="hide_finished">
<input type="checkbox" checked="{{hideFinished}}">
Hide finished resolutions
</label>
<form class="new-resolution">
<input type="text" name="title" placeholder="New Resolutions">
<input type="submit" value="Submit">
</form>
</header>
<ul>
{{#each resolutions}}
{{> resolution}}
{{/each}}
</ul>
</div>
</body>
<template name="resolution">
<li class="{{#if checked}}checked{{/if}}">
<input type="checkbox" checked="{{checked}}" class="toggle-checked">
{{title}}
<button class="delete">Remove</button>
</li>
</template>
发布于 2016-03-07 11:47:57
一个简单的(但花了一段时间才发现!)错误:您的标签类是带有hide_finished的_,而您的事件是带有-的hide-finished。
效果很好。
https://stackoverflow.com/questions/35831773
复制相似问题