0

我得到以下代码:

Clientes = new Meteor.Collection 'clientes'

 Template.listaClientes.clientes = ->   
 query = {}
 query = Session.get "searchData"
 console.log "get: " + query.nombre  
 clientes = Clientes.find(query) 

 Template.listaClientes.events
  'click .listItem' : ->
     console.log "item clicked"

 Template.searchPane.events
 'click #btnToList' : ->
     query = {}
     #asigna los campos a query si no son blancos
     if (x = $("#qNombre").val())? then query.nombre = x
     if (x = $("#qCiudad").val())? then query.ciudad = x
     console.log "q: " + query.nombre + query.ciudad    

     Session.set "searchData", query

它在启动时运行完美,查询是 {},因此模板显示集合中的每个文档。当我单击 #btnToList 时,我没有从 Find clausule 中得到任何结果。如果我从浏览器控制台手动将“searchData”设置为 {},它会触发触发器并再次绘制所有文档。

关于我所缺少的任何想法?

编辑:执行以下操作很好,这让我想知道发生了什么更多:/

  q={}
  q.nombre = query.nombre if query.nombre?
  Clientes.find q 
4

1 回答 1

0

好吧,看起来第二个 IF (#qCiudad) 总是在添加一个值,即使是空的。将检查更改为 if (x = $("#qCiudad).val()) != "" then ... 成功并且查询对象被正确传递。

于 2012-10-29T13:49:07.880 回答