问题:在单页应用中,当用户从一个页面转到另一个页面时,Meteor是否保持Checkbox的状态?
我正在尝试在Meteor中开发一个'Select books to read'应用程序,在主页上,用户可以从多本书中选择添加到他的阅读列表中。所选书籍显示在“我的阅读列表”页面上。 我已经使用Flow Router建立了路由系统。
// routes.js
FlowRouter.route('/', {
name: 'bookList',
action: function() {
BlazeLayout.render("mainLayout", {content: "bookList"});
}
});
FlowRouter.route('/myReadingList', {
name: 'myReadingList',
action: function() {
BlazeLayout.render("mainLayout", {content: "myReadingList"});
}
});
// bookList.js Helpers for bookList template
Template.bookList.helpers({
'books': function() {
return books.find();
}
});
Template.bookList.events({
'change .item': function(event) {
var temp = false;
Session.set("temp", event.target.checked);
if (Session.get("temp")) {
myReadingList.insert({
userid: Meteor.userId(),
bookName: this.bookName
});
} else {
var bookName = this.bookName;
Meteor.call('removebook', bookName); // remove unselected // books from list
}
});
// myReadingList.js Helpers for second page
Template.myReadlingList.helpers({
'selectedBooks':function(){
return selectedBooks.find();
}
)};
<!-- bookList.html : Homepage:bookList Template -->
{{#each books}}
<ul>
<li><input type="checkbox" class="item"> {{bookName}}
</ul>
{{/each}}
<!-- myReadingList.html: Second Page:myReadingList Template -->
{{#each selectedBooks}}
<ul>
<li>{{ name }}li>
</ul>
{{/each}}
问题:一切都按预期工作。我可以在第一页上选择书籍。所选书籍出现在第二页上。但是,当我回到第一页添加更多书籍或查看所选书籍时,所有复选框都是全新的。