Javascript模板-可以进行深度嵌套吗
我正在构建一个任务应用程序(为了好玩)&我只是坐下来思考这个问题。我将在这里用文字把这个问题牢记在心 模型非常简单,它包含Javascript模板-可以进行深度嵌套吗,javascript,asp.net,templates,nested,mustache,Javascript,Asp.net,Templates,Nested,Mustache,我正在构建一个任务应用程序(为了好玩)&我只是坐下来思考这个问题。我将在这里用文字把这个问题牢记在心 模型非常简单,它包含项目的集合。每个项目都包含一个任务列表这些任务列表是可嵌套的,例如,一个任务设计FrontPage可以将设计标题作为另一个任务列表。每个任务列表都包含任务。对于这个问题,典型的javascript模板是什么样子的。我不能用一个这样的方案。这个问题与嵌套菜单的N层相同,您将如何使用模板库渲染它 <div> {{#Projects}} <div&
项目的集合。每个项目都包含一个任务列表
这些任务列表是可嵌套的,例如,一个任务设计FrontPage可以将设计标题作为另一个任务列表
。每个任务列表都包含任务
。对于这个问题,典型的javascript模板是什么样子的。我不能用一个这样的方案。这个问题与嵌套菜单的N层相同,您将如何使用模板库渲染它
<div>
{{#Projects}}
<div>
<b>{{ProjectName}}</b>
</div>
<ul>
{{#TaskList}}
<li>{{TaskListName}} {{CreatedBy}} The Problem Comes here - How do i Render a #TaskList
here </li>
{{/TaskList}}
</ul>
{{/Projects}}
</div>
{{{#项目}
{{ProjectName}}
{{{#任务列表}
- {{TaskListName}{{CreatedBy}}问题来了-如何呈现#任务列表
这里
{{/TaskList}}
{{/Projects}
顺便说一句,如果有人有asp.net解决方案(让我听听他们的想法),N级深度嵌套是我目前无法克服的问题。您可以将任务列表定义为一个部分,并将其作为提示递归包含
模板:
<script type="text/template" id="projects">
{{#Projects}}
<div>
Project: <b>{{ProjectName}}</b>
</div>
{{>taskList}}
{{/Projects}}
</script>
<script type="text/template" id="task-list">
{{#TaskList}}
<ul>
<li>
{{TaskListName}} <em>{{CreatedBy}}</em>
{{>taskList}}
</li>
</ul>
{{/TaskList}}
</script>
下面是jsFiddle,让我们看看它的实际应用情况-我认为partials的用处不大。太棒了:)谢谢你教我永远不要看不起某样东西。很久以来我一直在寻找这个东西。如果我可以的话,我会投双重票的。。。!!
var data = {
Projects: [
{
ProjectName: "Project 1",
TaskList: [{
TaskListName: "Name 1",
CreatedBy: "Person 1"},
{
TaskListName: "Name 2",
CreatedBy: "Person 2",
TaskList: [{
TaskListName: "Sub Name",
CreatedBy: "Same Person"},
{
TaskListName: "Sub Name 2",
CreatedBy: "Person 1"},
{
TaskListName: "Sub Name 3",
CreatedBy: "Person 3-2",
TaskList: [{
TaskListName: "Sub Sub Name",
CreatedBy: "Person 3-3"}]}]}]},
{
ProjectName: "Project 2",
TaskList: [{
TaskListName: "Name 3",
CreatedBy: "Person 3"},
{
TaskListName: "Name 4",
CreatedBy: "Person 4"}]}]
},
template = $('#projects').html(),
partials = {
taskList: $('#task-list').html()
},
html = Mustache.render(template, data, partials);
document.write(html);