Templates “可能优化此粉尘”;逻辑;?
我在一个灰尘部分工作,如果条件满足,我想显示一个固定的标题 首先,我想知道用户是否说他们在给定的城市工作。如果他们不在我列表中的任何城市,我不想显示任何东西……除非他们住在夏威夷。然后我想显示相同的标题Templates “可能优化此粉尘”;逻辑;?,templates,optimization,dust.js,Templates,Optimization,Dust.js,我在一个灰尘部分工作,如果条件满足,我想显示一个固定的标题 首先,我想知道用户是否说他们在给定的城市工作。如果他们不在我列表中的任何城市,我不想显示任何东西……除非他们住在夏威夷。然后我想显示相同的标题 {@select key=workingCity} {@eq value=1}Fixed Header{/eq} {! Pittsburgh !} {@eq value=2}Fixed Header{/eq} {! Paris !} {@eq value=3}Fixed Header
{@select key=workingCity}
{@eq value=1}Fixed Header{/eq} {! Pittsburgh !}
{@eq value=2}Fixed Header{/eq} {! Paris !}
{@eq value=3}Fixed Header{/eq} {! Phoenix !}
{@default}
{@eq key=state value=50} {! Hawaii !}
Fixed Header
{/eq}
{/default}
{/select}
有没有办法避免将“固定标题”放置在四个不同的位置?
我知道我可以引用另一个部分,其中有一个特定的标题…但我需要将该部分引用放在四个位置
这是优化了吗?如果您使用的是足够新的灰尘和灰尘辅助工具版本,那么您可以使用新的
{@any}
和{@none}
辅助工具——它们正是针对这个用例的
{@select key=workingCity}
{@eq value=1/} {! Pittsburgh !}
{@eq value=2/} {! Paris !}
{@eq value=3/} {! Phoenix !}
{@any}Fixed Header{/any}
{@none}
{@eq key=state value=50} {! Hawaii !}
Fixed Header
{/eq}
{/none}
{/select}
这使您可以使用两个头部实例,这可能已经足够好了。这些助手的文档位于
您还可以将更多的逻辑从模板中带到上下文助手中,这是Dust真正擅长的。这样,逻辑仍保留在Javascript中,模板仅用于显示
{#showFixedHeader}
Fixed Header
{:else}
Optionally something else!
{/showFixedHeader}
在你的背景下:
{
"showFixedHeader": function(chunk, context) {
var workingCity = context.get('workingCity');
var state = context.get('state');
return [1,2,3].indexOf(workingCity) > -1 || state === 50;
}
}
现在,您的模板非常可读,如果您添加第四个城市,则模板根本不需要更改。非常感谢!我不得不使用惊人的{any}和{none}标记,因为我无法在我的环境中访问模板的上下文。也就是说,我对结果很满意!非常感谢你!