2012-10-26 3 views
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"를 브라우저 콘솔에서 수동으로 {}로 설정하면 트리거가 실행되고 모든 문서가 다시 그려집니다.

내가 무엇이 누락되었는지에 대한 아이디어가 있습니까?

편집 : 수행 다음은 더 세드릭 나를 궁금하게 생각하는 잘 작동 : (#qCiudad는) 항상 비어있는 경우에도 값을 추가하는 경우/

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

답변

0

가 아니라, 두 번째처럼 보인다. 수표를 if (x = $ ("# qCiudad) .val())! =" "로 변경하면 쿼리 개체가 올바르게 전달됩니다.

관련 문제