我想知道在渲染带有dust.js的页面时是否可以使用多个JSON。
例如,我在客户端。 我下载了我的JSON(JSON1和JSON2)和我的灰尘模板(dustTemplate)。我编译并加载我的模板。之后,我将使用2个JSON渲染我的页面。
现在我做:dust.render("template" , JSON, function(err, out) {...});
但它使用一个JSON,有没有办法使用2个或更多JSON?
谢谢
答案 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聚合到单个上下文堆栈中,灰尘可以在其上查找键。