Meteor会话变量未获取关键帧上的最后一个字符

Meteor会话变量未获取关键帧上的最后一个字符,meteor,typeahead,keyup,Meteor,Typeahead,Keyup,在与Meteor Typeahead软件包一起使用时,我正在使用一个会话变量跟踪搜索查询,但该变量有一个问题 当我在控制台中记录变量时,会显示最后一个字符,但当我在Typeahead调用的模板中输出助手时,它会忽略最后一个字符 我的活动: Template.bookSearchForm.events 'keyup .typeahead': (e) -> bookVal = e.target.value Session.set 'bookSearchValue', bo

在与Meteor Typeahead软件包一起使用时,我正在使用一个会话变量跟踪搜索查询,但该变量有一个问题

当我在控制台中记录变量时,会显示最后一个字符,但当我在Typeahead调用的模板中输出助手时,它会忽略最后一个字符

我的活动:

Template.bookSearchForm.events
  'keyup .typeahead': (e) ->
    bookVal = e.target.value 
    Session.set 'bookSearchValue', bookVal
我的助手:

Template.searchNoItems.helpers
  bookSearchValue: ->
   return Session.get 'bookSearchValue'
我的模板:

<template name="searchNoItems">
  <div class="search-no-results">
   <span class="lookupBook">Search for {{ bookSearchValue }}</span>
  </div> <!-- /.search-no-results -->
</template>
任何想法都将不胜感激。只是为了确认,控制台正在输出完整的查询,例如:My query,而在helper中,它只输出:My Quer

谢谢你看。

使用这个{{{{bookSearchValue}}}注意它是3个花括号

把手/空格键HTML转义 {{expression}}。如果不想转义某个值,请使用 三重储藏{{{


谢谢马克,但是助手正在输出文本,而不是最后一个字符。第三个大括号似乎没有改变这一点?@onjegolders你尝试过吗?当你控制台.logSession.get'bookSearchValue'时,你得到的值是正确的吗?但是当你使用助手并用{{输出时,它不是正确的文本?我在这里看到的唯一一件事是{{{issue ir如果你在其他地方修改了seasion,或者为了更好的度量,你可以尝试返回会话。获取'bookSearchValue'。toString Hanks,是的,我尝试了你的建议,也是toString建议,但遗憾的是,每次都是相同的结果,最后一个字符没有被包含。也许是Meteor Typeahead软件包更新不正确?@onjegolders可能是的,问题在于keyup。typehead尝试获取如下值:$e.currentTarget.val并添加控制台。记录'keyup called';查看是否可能再次调用keyup并删除最后一个字符interesting。在keyup上,它记录两次第一个字符,以便解释如果tally是错误的。如果我将其更改为keypress,则计数是正确的,但不幸的是,助手仍落后一个字符。我认为我们可能需要查看更多您的代码…我快速制作了类似的流星板,无法重现您看到的行为。但我看到keyup的另一个不良行为显然不是fired当你在typeahead自动完成@craigts后没有按任何键时,这太棒了,非常感谢你重现了这一点,你的例子显然有效,所以我必须看看我的代码偏离了哪里!@craigts我看到的一个区别是,我正在使用输入标记中的数据属性声明searchNoItems模板-data templates=searchItem;empty:searchNoItems如果我手动输出模板,查询似乎是正确的。我建议更改。typeahead而不是keyup。typeahead-这将使您能够干净地处理粘贴的文本。谢谢@michel floyd,实际上更改似乎不会触发任何事情?