質問: シングル ページ アプリで、Meteor はユーザーがあるページから別のページに移動したときにチェックボックスの状態を維持しますか?
Meteor で「読む本を選択」アプリを開発しようとしています。ホームページで、ユーザーは複数の本から選択して読書リストに追加できます。選択した本は、[私の読書リスト] ページに表示されます。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}}
問題: すべてが期待どおりに機能します。最初のページで本を選ぶことができます。そして、選択した本が 2 ページ目に表示されます。しかし、最初のページに戻って本を追加したり、選択した本をレビューしたりすると、すべてのチェックボックスが新しくなりました。
- これはMeteorでは正常ですか、それとも何か不足していますか?
- これが正常な場合、ページ 1 とページ 2 を切り替えたときにチェックボックスの状態を維持するにはどうすればよいですか?