Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法为会话变量和集合触发反应上下文_Javascript_Meteor - Fatal编程技术网

Javascript 无法为会话变量和集合触发反应上下文

Javascript 无法为会话变量和集合触发反应上下文,javascript,meteor,Javascript,Meteor,我有一个在右边有一个板列表,在左边有一个活动板: 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 (e

我有一个在右边有一个板列表,在左边有一个活动板:

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)
  },
})
当你点击电路板上的一个单元时,它应该增加。集合中的基础板会增加(如您所见,单击另一块板,然后返回到第一块板),但可见板不会增加


我已经尝试将该板直接存储在session变量中并返回该变量。当我这样做时,可见板会增加,但其他选项卡中的板不会随之增加。我正在寻找一种解决方案,使所有选项卡中的所有观众都能立即看到对活动板的编辑。

我会在发布问题后立即解决它。显然,
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()
}
更新:这是devel train上的一个bug,持续了大约一天。结果证明我的时机正好;-)