这个问题与我前面提到的this one类似。我让它工作,复制解决方案,但必须有一些我在这里失踪的东西。我从代码开始:
router.js:
this.route('note',{
path: '/note/:_id',
data: function() { return Notes.findOne(this.params._id); },
});
this.route('notes', {
waitOn: function() { return Meteor.subscribe('notes')}
});
模板'笔记' :
<table id="notes-table">
{{#each notes}}
<tr id="table-row">
<td id="indicator"></td>
<td id="remove-note" class="icon-close notes-table-class"></td>
<td id="notes-title" class="Nbody notes-table-class">{{this.title}}</td>
<td id="notes-body-prev" class="Nbody notes-table-class">{{this.body}}</td>
</tr>
{{/each}}
</table>
helpers.js:
Template.notes.events({
'click .Nbody': function(events,template){
console.log('displaying note : ' + this._id);
Router.go('/note/'+this._id);
}
});
模板&#39;注意&#39;很简单{{title}}和{{body}}
问题是,当我点击笔记本体时,它确实需要我应该在哪里,这是单音符,但它的文字只是闪烁一秒钟并立即消失并且永远不会回来,所以我什么也看不见。 。 问题:问题是什么?
我在控制台中没有收到任何错误。
这个和备忘录之间的差异&#39;解决方案是: - 这里我用的是表而不是span - 我把可点击的身体包裹在标签中(我想这可能是原因)
答案 0 :(得分:1)
您必须订阅&#39;注意&#39;路线能够检索它:
客户端:
this.route('note',{
path: '/note/:_id',
waitOn: function() { return Meteor.subscribe('note',this.params._id )}
data: function() { return Notes.findOne(this.params._id); },
});
this.route('notes', {
waitOn: function() { return Meteor.subscribe('notes')}
});
服务器:
Meteor.publish('note', function(noteId){
return Notes.find(this.params._id);
})
在评论中,您写道:当您:moved waitOn to Router.configure
时,它开始起作用。 Route.configure waitOn适用于所有路由,因为Method.publish('notes')
函数可能返回Notes.find()
,然后note
开始正常工作。