刚开始使用道场,我敢打赌这很容易解决,但它让我疯了
这是一个获取json并加载小部件的函数加载小部件
require([
"dojo/request",
"dojo/dom",
"dojo/_base/array",
"customWidget/carouselWidget",
"dojo/domReady!",
"dojo/json"
], function(request, dom, arrayUtil, carouselWidget, JSON){
request("data/carousel.json", {
handleAs: "json"
}).then(function(data){
var carouselContainer = dom.byId("learnCarousel");
arrayUtil.forEach(data, function(item){
var widget = new carouselWidget(item).placeAt(carouselContainer);
});
}, function(err){
console.log(err);
});
});
这是小部件
define(["dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!./template/carouselWidget.html"
], function (declare, _WidgetBase, _TemplatedMixin, template) {
return declare([_WidgetBase, _TemplatedMixin], {
name: "no data",
sauce: require.toUrl("./img/Desert.jpg"),
templateString: template,
baseClass: "carouselWidget"
});
});
这是小部件模板
<div id="item">
<img src="${baseClass}sauce" data-dojo-attach-point="imgNode" />
<p>${baseClass}sauce</p>
<p data-dojo-attach-point="nameNode">${baseClass}name</p>
</div>
我正在阅读本教程http://dojotoolkit.org/documentation/tutorials/1.10/recipes/custom_widget/
它几乎就在那里,但不是输出json数据,而是输出单词。carouselWidgetsauce carouselWidgetname
我已经盯着它看了几个小时,希望有一双新鲜的眼睛可能会有所帮助。
答案 0 :(得分:1)
有时候输入问题就是自己解决问题。
只需要$ {propertyName}而不是$ {baseClass}