0

テンプレートに以下のコードがあり、ページが読み込まれたときに目的の出力が得られます。

ソケットを使用してデータを更新しているため、ダストにページを動的にレンダリングさせる方法はありますか

{#storylines}
<li>{text|bl|s} <span class="badge yellow">{@negidx}{.}{/negidx}</span></li>    
{/storylines}

ソケット IO コード:

socket.on('updatechat', function (username, data) {
       $('#newstoryline').before(blurlines(data));
});

データの最後に単純に追加しようとしまし<span class="badge yellow">{@negidx}{.}{/negidx}</span>たが、出力は{@negidx}{.}{/negidx}-dust.jsに最新のデータをレンダリングさせる方法はありますか? または、代わりにある種のjQueryを使用する必要があり{@negidx}{.}{/negidx}ますか?

4

1 に答える 1

1

テンプレートをクライアント側でレンダリングする場合、これは簡単なはずです。コードは次のようになります。

socket.on('updatechat', function (username, data) {
  if (data) {
    dust.render('storyline', data, function(err, output) {
      if (output) {
        $('#newstoryline').before(output);
      }
    });
  }
});

何が起きてる:

返されるデータはJSONである必要があります。何かが返されたことを確認してください。

  if (data) {

返されたデータを使用dustしてテンプレートをレンダリングするために使用します。

    dust.render('storyline', data, function(err, output) {

確認してくださいoutput

  if (output) {

ページにを挿入outputします。これは通常innerHTMLで行われますが、自分に合ったものなら何でも使用できます。outputこの時点では文字列であることを忘れないでください。

        $('#newstoryline').before(output);
于 2013-02-13T21:19:21.853 に答える