2011-02-03 15 views
5

Così sto utilizzando i modelli di jQuery e hanno il seguente codice a lavorare nella mia domanda:jQuery Templates - sostituire il contenuto DIV

@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> 

Dal momento che sto chiamando .appendTo nel parametro funzione di callback della funzione template, ovviamente l'elenco dei centri di progettazione viene aggiunto all'elenco. Il mio obiettivo è SOSTITUIRE il contenuto all'interno di <div id="designCenters"> con i risultati basati su modelli.

Cercare il modo più efficiente per farlo.

Grazie.

risposta

9

modificare la funzione di successo in questo modo:

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

Oppure si potrebbe svuotare il contenitore di volta in volta.

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

Bingo. Lo accetterò come risposta in 10 minuti. – Scott

1

È possibile sostituire il codice HTML in un elemento come questo:

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

ho provato a cambiare il codice del modello a:. $ ("# DesignCenterTemplate") tmpl (dati) .html ("# designCenters"), ma che non ha effetto se non per indurlo a fermarsi completamente mostra la basato su modelli dati (senza errori JS). Un po 'nuovo per jQuery quindi è probabilmente un problema di base con il modo in cui lo chiamo. – Scott

+0

stavi usando il metodo html in modo errato. La mia versione è corretta. La risposta di Josiash è simile alla mia ma più completa per il tuo scenario – stephen776