gpt4 book ai didi

javascript - mustache 条件和循环

转载 作者:数据小太阳 更新时间:2023-10-29 05:01:28 24 4
gpt4 key购买 nike

资源如下:

JSON

{
"badges":{
"unlocked": [
{"name": "Win 1"},
{"name": "Win 2"},
{"name": "Win 3"}
],
"locked":[
{"name": "Lose 1"},
{"name": "Lose 2"},
{"name": "Lose 3"}
]
}
}

算法

{{ if_has_badges }}
<div class="badges">
<h1>Badges</h1>

{{ if_has_badges_unlocked }}
<div class="badges-unlocked">
<h2>Unlocked!</h2>
{{ loop_badges_unlocked }}
<a href="#" class="badge">
<strong>{{ name }}</strong>
</a>
{{ end_loop_badges_unlocked }}
</div>
{{ end_if_has_badges_unlocked }}

{{ if_has_badges_locked }}
<div class="badges-locked">
<h2>Locked!</h2>
{{ loop_badges_locked }}
<a href="#" class="badge">
<strong>{{ name }}</strong>
</a>
{{ end_loop_badges_locked }}
</div>
{{ end_if_has_badges_locked }}

</div>
{{ end_if_has_badges }}

如何编写此算法以与 Mustache 编译器一起使用?

我需要与两个方面一起工作,第一个是 RubyOnRails 应用程序,第二个是客户端 (JavaScript)。

最佳答案

您的问题有两种解决方案。

使用选择和反向选择

这是来自 mustache 文档的示例:

{
"repos": []
}

模板:

{{#repos}}<b>{{name}}</b>{{/repos}}
{{^repos}}No repos :({{/repos}}

输出:

No repos :(

正如您所看到的反转选择,让我来做条件逻辑。在您的情况下,它看起来像:

JSON:

var viewModel = {
badges:[]//badges here
}
viewModel.anyBadges = badges.length >0;

mustache :

    <div class="badges-unlocked">
{{#anyBadges}}
<h2>Unlocked!</h2>
{{/anyBadges}}
{{#badges_unlocked}}
<a href="#" class="badge">
<strong>{{ name }}</strong>
</a>
{{/badges_unlocked}}

不要在无逻辑模板中做逻辑

这就是我要做的。如果您的 Mustache 模板中有条件逻辑,我认为您做错了。您可以使用 Handlebars相反,这在这方面要先进得多,或者将您的逻辑移到其他地方(到您的 javascript)。

请参阅Mustache readme

关于javascript - mustache 条件和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041930/

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