2

Dust.js でページをレンダリングするときに、複数の JSON を使用できるかどうか疑問に思っています。

たとえば、私はクライアント側にいます。JSON (JSON1 と JSON2) とダスト テンプレート (dustTemplate) をダウンロードします。テンプレートをコンパイルしてロードします。2 つの JSON を使用してページをレンダリングした後。

今のところ私はそうしています:dust.render("template" , JSON, function(err, out) {...}); しかし、それは1つのJSONを使用しています.2つ以上のJSONを使用する方法はありますか?

ありがとうございました

4

3 に答える 3

2

1つのページで複数の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

@Mitchが指摘するソリューションはシンプルで効率的です。jqueryを使用せずにこれを行う他の方法はhttp://jsfiddle.net/yXx5L/4/です

ページの json を 1 つのコンテキスト スタックに集約するために使用dust.makeBaseします。このスタックで、Dust はキーを探すことができます。

于 2013-06-10T23:43:26.060 に答える
0

1 ページのレンダリングに 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 に答える