有没有办法更新模板数据而无需重新渲染灰尘模板。
我的意思是这个。
我有一个成功的灰尘模板,输出以下内容:
<ul>
<li>John</li>
<li>Mark</li>
<li>Jim</li>
<li>Nick</li>
</ul>
当我对我的数据进行更新时,例如:将“John”更改为“Peter”并将结果发送到数据库,是否需要再次重新渲染灰尘模板(这将获取所有数据并重新获取 - 在客户端上绘制)或者有没有办法告诉灰尘只更新值为“John”的li(并将其更改为“peter”)?
答案 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扩展名,所以摆脱了它。