2013-02-13 1 views
0

У меня есть код в моем шаблоне, который дает желаемый результат при загрузке страницы.dust.js визуализировать динамический контент

Есть ли способ, чтобы пыль визуализации страницы динамически, как я использую сокеты для обновления данных

{#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}?

ответ

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, чтобы сделать шаблон, используя полученные данные.

Проверка на output:

if (output) { 

Вставьте output в вашу страницу. Обычно это делается с помощью innerHTML, но вы можете использовать все, что работает для вас. Помните, что output является строкой в ​​этой точке.

 $('#newstoryline').before(output); 
+0

В настоящее время я предоставляю серверу шаблонов. Использование обычных '$ ('# newstoryline'). Before (blurlines (data));' он обновляет данные. однако он не отображает значение '{@negidx} {.} {/ negidx}' в качестве значения, а просто возвращает строку. Может потребоваться переходить к рендерингу на стороне клиента, если он не может быть выполнен на стороне сервера. знаете ли вы, какие преимущества/недостатки рендеринга на стороне сервера и на стороне клиента? – Tam2

+0

Вы можете использовать их обоих. Просто используйте dust-core.js на своей странице, чтобы использовать клиентскую сторону. Преимуществом рендеринга на стороне клиента является то, что вы можете кэшировать шаблоны, поэтому единственное, что вам нужно загрузить при загрузке страницы, это JSON. – smfoote

 Смежные вопросы

  • Нет связанных вопросов^_^