gpt4 book ai didi

javascript - 避免模​​板代码冗余

转载 作者:行者123 更新时间:2023-12-03 11:23:19 28 4
gpt4 key购买 nike

我主要是网络开发和 javascript/nodejs/expressjs 的初学者,我一直面临着一个困扰我几个月的问题,我找不到一个不太复杂的解决方案或太杂乱;在 View 中,我有 3 个框架,在这三个框架中,我需要列出一个对象数组,所有三个框架具有相同的数据结构,但具有不同的值,并且我需要根据其值突出显示某些对象使用html,当时我使用jade,重复“if ... else ... case ...”的相同链三次,我尝试切换到handlebars/hogan.js并过滤数据添加在渲染之前每种情况都有特定的 html 结构,但我最终创建了另一个困惑,使得在快速更改 View 的视觉效果时变得相当困难和困惑,因为我仍处于应用程序前端的早期开发阶段,这会是什么使用 Mustache(hogan)/handlebars/jade 完成任务的最简单方法/方法?

我在 Jade 方面遇到的冗余的例子; (原始代码中有更多的 if...else... 以及更大的 html 结构)

div(class='frame red'
for object in array
if object.annex
case object.annex.type
when 1
i object.annex.text
when 2
b object.annex.text
when 3
span(class='normal') object.annex.text
else
case object.type
when 1
i object.text
when 2
b object.text
when 3
span(class='normal') object.text

div(class='frame blue')
for object in array
if object.annex
case object.annex.type
when 1
i object.annex.text
when 2
b object.annex.text
when 3
span(class='normal') object.annex.text
else
case object.type
when 1
i object.text
when 2
b object.text
when 3
span(class='normal') object.text

最佳答案

用dust.js做的,这样调用它;

<div class='frame red'>

{#array}

{#annex}

{>"partials/object"/}
{/annex}

{>"partials/object"/}
{/array}

</div>

<div class='frame blue'>

{#array}

{#annex}

{>"partials/object"/}
{/annex}

{>"partials/object"/}
{/array}

</div>

partials/object.dust 中的逻辑;

{@select key=type}

{@eq value=1}
<i>{text}</i>
[/eq}

{@eq value=2}
<b>{text}</b>
{/eq}

{@default} // when type is null
<span>{text}{?isAnnex}, annex.{/isAnnex}</span>
{/default}

{/select}

关于javascript - 避免模​​板代码冗余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27019425/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com