我有一个模板:

  <div id="search">
    {{> search}}
  </div>

  <div id="bookmarks-container">
    {{> bookmarks}}
  </div>

<template name="bookmarks">
    {{#each bookmarks}}
        <div class="bookmark">
            {{URL}}
        </div>
    {{/each}}
</template>

<template name="search">
    <input type="text" id="search" value="" />
</template>


而且我有一个获取书签的代码:

bookmarks = new Meteor.Collection("Bookmarks");

if (Meteor.isClient) {

  Template.bookmarks.bookmarks = function() {
    var s = $('#search').text();
    alert(s);
    if (s === '')
      return bookmarks.find({});
    else
      return bookmarks.find({tags : 'some_tag'});
  };


如果#search文本字段为空,我想显示所有书签,如果不是,请过滤我的书签。

如我所见,Template.bookmarks.bookmarks仅调用一次-在浏览器中加载页面时。每当用户在#search文本输入中按下按钮时,如何调用此方法:

Template.search.events({
   'keyup #search' : function(e,t) {
     // ....
   }


提前致谢。

最佳答案

Session中继数据

var s = Session.get("query");




Template.search.events({
  'keyup #search' : function(e,t) {
    Session.set("query",t.find('#search').value);
  }


模板bookmarks帮助程序本身不知道何时刷新数据。使用Session表示query变量/哈希是反应性的。

关于javascript - 在浏览器上刷新收藏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17364346/

10-10 04:53