我有一个small project,右边有一个电路板列表,左边有一个活动板:
var updateBoard = function (b) {
Boards.update(b._id, b)
Session.set("active-board-id", b._id)
}
Template.controls.boards = function() {
return Boards.find()
}
Template.controls.events({
'click .board' : function (evt) {
updateBoard(this)
}
})
Template.board.b = function() {
var b = Boards.findOne(Session.get('active-board-id'))
return b || Boards.findOne()
}
Template.board.events({
'click .cell': function (evt) {
this.value += 1
},
'click .board': function (evt) {
updateBoard(this)
},
})
当您单击电路板中的单元格时,它应该递增。集合中的底层板增量(通过单击另一块板然后返回第一块板可以看到),但可见板不会增加。
我已经尝试将电路板直接存储在会话变量中并返回它。当我这样做时,可见电路板会递增,但其他选项卡中的电路板不会随之增加。我正在寻找一种解决方案,使所有选项卡中的所有观看者都能立即看到对活动板的编辑。
答案 0 :(得分:1)
数字我会在发布问题后立即解决。显然findOne
未正确注册,切换到find
解决问题。
Template.board.b = function() {
var b = Boards.find(Session.get('active-board-id')).fetch()[0]
//var b = Boards.findOne(Session.get('active-board-id'))
return b || Boards.findOne()
}
更新:这是开发火车上大约一天的错误。事实证明我的时机很好; - )