如何在dojo小部件中使用json成员对象

如何在dojo小部件中使用json成员对象,json,dojo,widget,Json,Dojo,Widget,我正在迭代一个json,其格式如下 request("js/my/data/sample.json", { handleAs: "json" }).then(function (jsonResults) { arrayUtil.forEach(jsonResults.LinksMap, function (List) { arrayUtil.forEach(List.LinksMap.entry, function (Ientry) { v

我正在迭代一个json,其格式如下

request("js/my/data/sample.json", {
    handleAs: "json"
}).then(function (jsonResults) {
    arrayUtil.forEach(jsonResults.LinksMap, function (List) {
        arrayUtil.forEach(List.LinksMap.entry, function (Ientry) {
            var widget = new support(Ientry.Link).placeAt(authorContainer);
        });
    });
});
小部件HTML模板如下所示

      <div><span  title="${title}">${title}</span></div> <br />
 <div><span title="${description}">${description}</span></div> <br />
 <a class="info" title="${title}" href="${url}">${title}</a><br />
${title}
${description}

我想使用json中提供的对象链接类型在小部件的html模板中使用不同的类,因此如果它的链接类型是“信息”,那么使用


如果是新闻,那么使用

          <a class="news" title="${title}" href="${url}">${title}</a><br />


此修改模板的组合:

<div><span  title="${Link.title}">${Link.title}</span></div> <br />
<div><span title="${Link.description}">${Link.description}</span></div> <br />
<a class="${className}" title="${Link.title}" href="${Link.url}">${Link.title}</a><br />

但更好的办法是在小部件中实现一个
post-create
方法,该方法可以在小部件构建之后和显示之前,以您喜欢的任何方式修改小部件


请参阅并在此处搜索postCreate。

将整个
条目
传递给您的小部件,而不仅仅是
链接
。然后,小部件可以根据
linkType
@PaulGrime添加/删除CSS类本身。当我传递整个条目时,它不起作用,因为我有html模板使用链接对象及其属性。这起作用了。我应该在postcreate中使用这些。我会的。多亏了这两个。出于某种原因,它还将类添加到主div中。我如何重写它?我将它重命名为某个名称中不包含类的名称,并且它可以工作。Oleg Mikheev我如何在PostCreate上使用您的代码。有样品吗
<div><span  title="${Link.title}">${Link.title}</span></div> <br />
<div><span title="${Link.description}">${Link.description}</span></div> <br />
<a class="${className}" title="${Link.title}" href="${Link.url}">${Link.title}</a><br />
request("js/my/data/sample.json", {
handleAs: "json"}).then(function(jsonResults){  arrayUtil.forEach(jsonResults.LinksMap, function(List){arrayUtil.forEach(List.LinksMap.entry, function(Ientry){

  if('information' === Ientry.linkType) Ientry.className = 'info';
  else if('news link' === Ientry.linkType) Ientry.className = 'news';
  var widget = new support(Ientry).placeAt(authorContainer);

});});});