2012-09-03 29 views
10

Bir liste görünümü için bir Kendo UI şablon içinde anlamaya çalışıyorum, sayfadaki bilgileri işlemek için her nesne içindeki bir koleksiyonda nasıl döngü yapılacağını. İşte ile oynuyorum json bir örnektir:Kendo UI döngü içinde Json içinde şablon içinde ListView için

{"Data":[{"Title":"Malicious Acts","KeyPairs":{"Key1":"12","Key2":"24"}},   {"Title":"Enrollments","KeyPairs":{"Key1":"12","Key2":"24"}},{"Title":"Customer Feedback","KeyPairs":{"Key1":"12","Key2":"24"}},{"Title":"Questionable Accounts","KeyPairs":{"Key1":"12","Key2":"24"}}],"Total":4,"AggregateResults":null,"Errors":null} 

ben şablonda keypairs öğeleri işlemek istiyorum ve sadece bir nasıl anlamakta güçlük çekiyor. İşte

kaynağıdır: Ben sadece bu overthinking eminim

<div id="subscriberFunctions"> 

    <script type="text/x-kendo-tmpl" id="template"> 
     <div class="subscriberFunction"> 
      <h3>${Title}</h3> 
      <!-- Display KeyPairs --> 
     </div> 
    </script> 

    @(Html.Kendo().ListView<SubscriberMenuFunction>() 
     .Name("listView") 
     .TagName("div") 
     .ClientTemplateId("template") 
     .DataSource(dataSource => 
     { 
      dataSource.Read(read => read.Action("SubscriberMenu", "ListView")); 
     }) 
     .Selectable(selectable => selectable.Mode(ListViewSelectionMode.Single)) 

    ) 
</div> 

ve Kendo UI tanıması için şablonda foreach döngüsü nasıl uygulanacağı emin şey basit, ama değil o.

Şimdiden teşekkürler!

cevap

23

Sen for-döngüsünde bir sayaç ile yapabilirsiniz.

<script type="text/x-kendo-tmpl" id="template"> 
<div class="subscriberFunction"> 
    <h3>${Title}</h3> 
    <!-- Display KeyPairs --> 
    <ul> 
     #for (var i=0,len=KeyPairs.length; i<len; i++){# 
      <li>${ KeyPairs[i] }</li> 
     # } # 
    </ul> 
</div> 

değerlerimi var
+0

Bu daha iyi bir yaklaşımdır ve harika çalışır ve çıktıdaki fazladan kod snippet'ini getirmez. – mservais

+0

"Var i = 0" dan sonra bir yazım hatası olduğunu düşünüyorum, virgül bir yarı final olmalı? –

+0

^'Olmalısın', 'semicolan', 'noktalı virgül' olmalı sonra bir yazım hatası olduğunu düşünüyorum. : P – PAULDAWG

8

Bir şablonu içinde keyfi JavaScript kodu olabilir:

<script type="text/x-kendo-tmpl" id="template"> 
    <div class="subscriberFunction"> 
     <h3>${Title}</h3> 
     <!-- Display KeyPairs --> 
     <ul> 
     # for (var key in KeyPairs) { # 
       <li>${ KeyPairs[key] }</li> 
     # } # 
     </ul> 
    </div> 
</script> 
+2

ancak javascript kodu nasıl göründüğünü beraberinde getirdi: \t 52b1e4cc-5fef-4f5c-a0b5-f054b2cf6655 • \t fonksiyonu •() {return b} Bu sorunu çözecektir • \t işlevi (a) {var b = bu, c, d, e = işlev() {return b}, f; o.fn.init.call (this); için (d öğesinde) c = a [ d], d.charAt (0) = "_" && (f = M.call (c), c = b.wrap (c, d, e)), b [d] = c;! b.uid = n.guid()} • \t işlevi (a) {return this.hasOwnProperty (a) && a! == "_ olaylar" && this this [a]! == r && a! == "uid"} • \t function() {var a = {}, b, c; bunun için (c içinde), eğer (this.shouldSerialize (c)) {b = bu [c]; if (b, R || b instanceof Q) b) = b.toJSON(); a [c] = b} a) ... – mservais

+0

Bu örnekte KeyPairs kötü bir ad mıdır? – mservais

+0

@mservais javascript'ten nasıl kurtulacağınızı anladınız mı? Aynı ikilemle yüzleşiyorum. –

İlgili konular