2011-02-03 29 views
5

Yani değiştirin:jQuery Şablonları - jQuery şablonları kullanarak ve benim uygulamada çalışan aşağıdaki kodu var ediyorum DIV içeriği

@using (Html.BeginForm()) 
    { 
     @Html.DropDownList("StateList", 
          Model.States, 
          "<Select>" 
          ) 

     <div id="designCenters"></div> 

     <script id="designCenterTemplate" type="text/html"> 
      <p><li>${Name}</li></p> 
     </script>   
    } 

    <script language="javascript" type="text/javascript"> 
     $("#StateList").change(function() { 
      $.getJSON("/api/designcentersbystate/" + $(this).val(), 
       function (data) { 
        $("#designCenterTemplate").tmpl(data).appendTo("#designCenters") 
       }); 
     }); 
    </script> 

Ben şablon işlevinin geri arama işlevi parametresinde .appendTo arıyorum yana, Açıkçası, tasarım merkezlerinin listesi listeye eklenmiştir. Amacım, içeriği <div id="designCenters"> içinde geçici sonuçlarla değiştirmek.

Bunu yapmanın en etkili yolunu arıyoruz.

Teşekkürler.

$("#designCenters").html(YOUR HTML HERE); 

cevap

9

Değişim başarı fonksiyonu şöyle:

function (data) { 
    $("#designCenters").html($("#designCenterTemplate").tmpl(data)) 
} 

Yoksa konteynerin her zaman yok eder

+0

Bingo için daha eksiksiz. Bunu 10 dakika içinde cevap olarak kabul edeceğim. – Scott

1

Böyle bir elemanda html yerini alabilir. .

$("#designCenters").empty(); 
$("#designCenterTemplate").tmpl(data).appendTo("#designCenters"); 
+0

Ben şablon kodunu değiştirmeyi denedi: ("# designCenters") $ ("# designCenterTemplate") tmpl (veri) .html ama bu tamamen şablon gösteriminin durdurulmasına neden olacak başka bir etkisi yoktur veri (JS hatası olmadan). JQuery için yeni bir şey, bu yüzden onu arama tarzımla ilgili temel bir sorun. – Scott

+0

Sadece html yöntemini yanlış kullanıyordunuz. Sürümüm doğru. Josiash'ın cevabı benimkine benziyor ama senaryonuz – stephen776