さて、Bootstrap 3 で Meteor を実行しています。私のページにはモーダルがあります。
<template name="bookModal">
<div class="modal fade" id="bookModal">
<div class="modal-dialog">
<div class="modal-content">
{{#each book}}
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">{{title}}</h4>
</div>
<div class="modal-body">
<img class="img-responsive modalBookImage" src="{{imglg}}"></img>
</div>
<div class="modal-footer">
<p>maybe this is the problem</p>
</div>
{{/each}}
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</template>
そして、コレクションからそのテンプレートにデータをフィードします。
Template.bookModal.book = function() {
return Books.find({_id: Session.get('bookModalID')});
}
そして、別のテンプレートのイベントによってトリガーされます。
Template.home.events({
'click .showBookModal': function(e) {
Session.set("bookModalID", e.target.id);
$('#bookModal').modal('show');
}
});
クリックされたものの ID を取得し、Books で検索して情報を検索し、テンプレートに入力してモーダルを表示します。右?
しかし、デバッグ方法がわからないという非常に奇妙なエラーが発生しています。
最初の「.showBookModal」をクリックすると、完全に空白のモーダルが表示されます。次に、別の場所をクリックして 2 番目の '.showBookModal' をクリックすると、最初にクリックした項目に関するモーダルがポップアップ表示されます。このパターンは続き、モーダルが開くたびに、新しい Session.get("bookModalID") に対応するデータは表示されませんが、終了したばかりのデータが表示されます。
何が起きてる?