2

我想知道在使用dust.js 渲染页面时是否可以使用多个JSON。

例如,我在客户端。我下载了我的 JSON(JSON1 和 JSON2)和我的灰尘模板(dustTemplate)。我编译并加载我的模板。在我用 2 个 JSON 渲染我的页面之后。

现在我这样做:dust.render("template" , JSON, function(err, out) {...}); 但它使用一个 JSON,有没有办法使用 2 个或更多 JSON?

谢谢

4

3 回答 3

2

您绝对可以在单个页面上使用多个 JSON 有效负载(它们不需要同时到达)。每个有效负载都需要自己调用dust.render,但如果您愿意,它们可能会使用相同的模板。

例如:

async('GET', url1, function(data) {
  if (data) {
    data = JSON.parse(data);
    dust.render('template1', data, function(err, out) {
      if (typeof out === 'string') {
        container1.innerHTML = out;
      }
    });
  }
});

async('GET', url2, function(data) {
  if (data) {
    data = JSON.parse(data);
    dust.render('template2', data, function(err, out) {
      if (typeof out === 'string') {
        container2.innerHTML = out;
      }
    });
  }
});
于 2013-03-14T13:20:47.370 回答
0

使用 2 个 JSON 或更多来呈现一页。我们可以将 JSON 与 jQuery 合并

var jsonMerge = $.extend({}, JSON1, JSON2);
var templateCompiled = dust.compile(dustTemplate, "template");
dust.loadSource(templateCompiled );
dust.render("template" , jsonMerge , function(err, out) {...});
于 2013-03-15T16:07:40.513 回答
0

@Mitch 指出的解决方案简单高效。不使用 jquery 的其他方法是http://jsfiddle.net/yXx5L/4/

用于将dust.makeBase页面的 json 聚合到单个上下文堆栈中,灰尘可以在该堆栈上查找键。

于 2013-06-10T23:43:26.060 回答