2011-05-09 3 views
0

어떤 이유로 필터를 적용한 후 템플릿을 업데이트 할 수없는 것 같습니다. 내 필터링이 작동하지만 템플릿이 업데이트되지 않는 이유는 무엇입니까? 이견있는 사람?jQuery 템플릿이 업데이트/새로 고침되지 않습니까?

다음은 내가 겪고있는 문제를 보여주는 jsfiddle 링크입니다. 그것은 정확하지는 않지만, 그 점을 가로 지른다. jsfiddle

또 다른 편집. 수동으로 테스트 대신 객체 배열을 보내면 제대로 작동합니까? 예 :

은 작동하지 않습니다 :

$.tmpl(summaryTemplate, test).appendTo("#buildings"); 

작품 :

$.tmpl(summaryTemplate, [{"Device" : "Device11"}, {"Device" : "Device12"}]).appendTo("#buildings"); <---works 


<script type="text/javascript"> 
    var buildings = []; 
    $.template("summaryTemplate", $('#summaryTemplate')); 
    $(function() { 
    var xhr = $.getJSON('/GetBuildings', { id: 4 }); 
    xhr.success(function(data) { 
     buildings = data; 
     $.tmpl(summaryTemplate, buildings).appendTo("#buildings"); 
    }); 


    $('#device').keyup(function() { 
     var text = this.value; 
     var test = $(buildings).filter(function() { 
     return (this.Device.toLowerCase().indexOf(text.toLowerCase()) != -1); 
     }); 
     $('#buildingCount').text(test.length); 
     $.tmpl(summaryTemplate, test).appendTo("#buildings"); 
    }); 
    }); 

</script> 
<script id="summaryTemplate" type="text/x-jquery-tmpl"> 
    <li class="device"> 
    ${Device} 
    <div style="display: none;"> 
     <div class="slider"> 
     <div> 
      <span>Building: </span><span><b>${Building}</b></span>&nbsp; &nbsp;<span>Room: 
      </span><span><b>${Room}</b></span></div> 
     <div> 
      <span>Building Access: </span><span><b>${BuildingAccess}</b></span>&nbsp; 
      &nbsp;<span>Room Access: </span><span><b>${RoomAccess}</b></span></div> 
     <div> 
      <span>Access Type: </span><span><b>${AccessType}</b></span>&nbsp; &nbsp;<span>After 
      Hours: </span><span><b>${AfterHours}</b></span></div> 
     <div> 
      <span>Notes: </span><span><b>${Notes}</b></span></div> 
     </div> 
    </div> 
    </li> 
</script> 

답변

0

을 아주 잠시 나는 마침내 그것을 알아 냈이 작업 후. .filter() 메서드는 jquery 객체를 반환합니다. test.toArray()를 템플릿에 보내면 모든 것이 제대로 작동했다.

관련 문제