好的,所以我正在尝试使用 Dojo 1.8 构建一些类似于以下内容的东西......
<ul class="groups">
<li class="group">
<ul class="items">
<li class="item"></li>
</ul>
</li>
</ul>
我为“项目”制作了一个简单的 TemplatedWidget(我们称之为 TypeAItem,但稍后可能会有不同类型的“项目”需要不同的模板。
我有代表组的 JSON,看起来像这样......
[{
name: "groupName",
items: [{ title: "Item 1", type: "someRandomType", otherStuff: {} }]
}]
我的问题是我不确定构建这个嵌套列表的最佳方法是什么。
最初我只是想在 Mustache 中使用某种循环约定,但 Dojo 的模板似乎不支持这种做法。然后,在阅读了创建自定义小部件教程后,我只想使用嵌套的 for 循环,就像这样......
var groupHTML="<ul class='groups'>"
for (group in groups) {
groupHTML += "<li class='group'>";
for (item in groups.items) {
???
// I'm assuming something like var item = new TypeAItem(item);
// but I the tutorial only uses the .placeAt(domNode) function
// So I'm not sure how to get this to work.
}
groupHTML += "</li>
}
groupHTML += "</ul>
这很容易,如果我需要一些其他类型的项目类型的列表,那么我可以只更改那一行代码,或者更好的是,将其设置为一个函数并传入代表该项目的小部件。
由于我不知道如何让它工作,我开始想我可能需要将组设置到他们自己的小部件中,然后在 postCreate 方法中创建项目。但是,我需要弄清楚如何将 group.items 数组传递给它,以及如何使其足够灵活,以便以后处理不同的项目类型。
如果有人可以提供帮助,我将不胜感激!