在 Dojo 中,每个小部件使用 _TemplatedMixin 1:1 模板。一个小部件不能有多个模板。
听起来你想要做的是在列表容器小部件内部有一个列表项小部件。您需要两个小部件,而不是一个!
MyListWidget.html:
<ul></ul>
MyListItemWidget.html:
<li>${itemContent}</li>
道场 1.7+:
define("MyListItemWidget", [
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!./templates/MyListItemWidget.html"
], function(declare, _WidgetBase, _TemplatedMixin, template) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template,
postCreate: function() {
// Do your thing.
}
});
});
define("MyListWidget", [
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!./templates/MyListWidget.html",
"MyListItemWidget"
], function(declare, _WidgetBase, _TemplatedMixin, template, MyListItemWidget) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template,
postCreate: function() {
new ListItemWidget({itemContent:"Hello"}).placeAt(this.domNode);
new ListItemWidget({itemContent:"World"}).placeAt(this.domNode);
}
});
});
require(["MyListWidget", "dojo/domReady!"], function(MyListWidget) {
new MyListWidget().placeAt('wherever');
});