Dust.js呈现的一个页面的几个JSON

时间:2013-03-14 10:53:00

标签: javascript json dust.js

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

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

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

谢谢

3 个答案:

答案 0 :(得分: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;
      }
    });
  }
});

答案 1 :(得分: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) {...});

答案 2 :(得分:0)

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

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