dust.js模板数据更新

时间:2014-01-20 21:40:45

标签: javascript templates dust.js

有没有办法更新模板数据而无需重新渲染灰尘模板。

我的意思是这个。

我有一个成功的灰尘模板,输出以下内容:

<ul>
    <li>John</li>
    <li>Mark</li>
    <li>Jim</li>
    <li>Nick</li>
</ul>

当我对我的数据进行更新时,例如:将“John”更改为“Peter”并将结果发送到数据库,是否需要再次重新渲染灰尘模板(这将获取所有数据并重新获取 - 在客户端上绘制)或者有没有办法告诉灰尘只更新值为“John”的li(并将其更改为“peter”)?

1 个答案:

答案 0 :(得分:2)

您可以使用较小的模板组件。这就是我的意思:

list.tl:

<ul>
  <li>{>"listItem" name="John"/}</li>
  <li>{>"listItem" name="Mark"/}</li>
  <li>{>"listItem" name="Jim"/}</li>
  <li>{>"listItem" name="Nick"/}</li>
</ul>

listItem.tl:

{name}

然后,当你,你说,点击一个元素,你可以做这样的事情:

document.getElementsByTagName('li').addEventListener('click', function() {
  var element = this;
  dust.render('listItem', {name: 'MyNewName'}, function(error, output) {
    element.innerHTML = output;
  });
}

这样,您只需重新渲染实际被更改的部分。

编辑1:调用另一个模板时不需要.tl扩展名,所以摆脱了它。