使用对象作为流星中查找的参数没有结果

时间:2012-10-26 02:12:53

标签: coffeescript meteor

我收到了以下代码:

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 

1 个答案:

答案 0 :(得分:0)

好吧,看起来第二个IF(#qCiudad)总是在空的时候添加一个值。 将检查更改为if(x = $(“#qCiudad).val())!=”“然后...制作它并正确传递查询对象。