我正在尝试使用dust.js,并且想知道解决这个问题的最有效方法:
我有一个简单的模板结构,包含2个级别的导航和内容。
第一级导航是静态的 - 而第二级(子导航)随主导航中的每次更改而变化。
父模板:
<nav class="navbar navbar-fixed-top navbar-dark">
<div class="container">
{>"navigation/navigation_primary"/}
{>"navigation/navigation_secondary"/}
</div>
</nav>
<div class="container"></div>
主要导航模板:
<div class="navbar-container navbar-primary">
<ul class="nav navbar-nav">
{#navigation_primary}
<li class="nav-item">
<a class="nav-link" href="#{slug}">{label}</a>
</li>
{/navigation_primary}
</ul>
</div>
辅助导航模板:
<div class="navbar-container navbar-secondary">
<ul class="nav navbar-nav">
{#navigation_secondary}
<li class="nav-item">
<a class="nav-link" href="#{slug}">{label}</a>
</li>
{/navigation_secondary}
</ul>
</div>
现在,我的问题是:如果没有重新加载页面,当我点击主要导航元素时,我想更新“辅助导航”。
我这样做的方法是重新渲染“辅助导航模板”,然后用新渲染的模板(用jQuery.html())替换旧的“.navbar-secondary” - 但我是想知道dust.js是否有它自己的功能,因为它能够异步加载部分?
老实说,我没有发现大多数dust.js文档信息量很大,所以我很难搞清楚细节。
有没有更好的方法只更新部分并保持模板的其余部分不受影响,而不使用像jQuery.html()那样的东西并替换dust.js中的部分?