2015-05-19 3 views
1

I cam пытается построить ListView с помощью KendoUI.Рекурсивный шаблон KendoUI

Из-за этого мне нужно создать ClientTemplate.

Но я хочу знать, после создания ClientTemplate, как я могу использовать этот шаблон внутри себя.

Другими словами, я хочу создать Recursive Template, если это имеет смысл.

Это то, что я до сих пор:

<script type="text/x-kendo-tmpl" id="template"> 
    <div class="submenu-item"> 
     #:Name# 
    </div> 
    <div class="submenu-children"> 
     # foreach (var child in ChildElements) { # 
      // In here I want to reuse this same template. 
     #}# 
    </div> 
</script> 

Идея это так, что я могу создать ListView элементов и всех его детей. Я бы отформатировал детей, чтобы их слегка вставляли в закладки.

Любая помощь будет мне очень признательна.

+0

могли бы вы сделать скрипку/додзё с текущим подходом? –

+0

Это очень сложно, потому что я использую библиотеку KendoUI. Не совсем уверен, как связать это. Но вот ссылка, которая показывает реализацию этого, но не рекурсивного. http://demos.telerik.com/aspnet-mvc/listview/index Я только что создал модель, которая имеет список этой модели для имитации ребенка. Итак, что бы вы хотели сделать, это рекурсивно отображать каждый ребенок, пока вы не окажетесь на «листе дерева». Надеюсь, это имеет смысл. –

ответ

2

Вам не нужно делать #foreach внутри шаблона, просто сделать вызов

#= kendo.render(kendo.template($("\\#template").html()), data.ChildElements) # 

Вы можете столкнуться с ошибкой, если самый нижний дочерние элементы не имеют свойство ChildElements в этом случае просто добавьте

# if(data.ChildElements !== undefined && data.ChildElements.length > 0) { # 
    #= kendo.render(kendo.template($("\\#template").html()), data.ChildElements) # 
# } # 

См несколько рабочий образец на http://jsbin.com/fagawo/1/edit?html,js,output

+0

Спасибо за это. Сделал небольшое улучшение, и он отлично работает. http://jsbin.com/xavuwinobe/2/edit –

Смежные вопросы