gpt4 book ai didi

javascript - 有人可以解释一下#ifeq ../section key如何使用handlebar.js工作吗

转载 作者:行者123 更新时间:2023-11-27 23:10:08 25 4
gpt4 key购买 nike

我目前在我的网站上使用 Handlebar.js,并且我的 View 之一中有以下代码:

{{# each navLinks}}
{{#ifeq ../section key}}
{{key}}
{{else}}
{{/ifeq}}
{{/each}}

然后在我的中间件中我有:

locals.navLinks = [
{ label: 'Projects', key: 'projects', href: '/projects' },
{ label: 'Journey', key: 'journey', href: '/journey' },
{ label: 'Social media', key: 'social', href: '/social' },
{ label: 'Reach me', key: 'contact', href: '/contact' }
];

然后有一个辅助函数:

// standard hbs equality check, pass in two values from template
// {{#ifeq keyToCheck data.myKey}} [requires an else blockin template regardless]
_helpers.ifeq = function(a, b, options) {
if (a == b) {
return options.fn(this);
} else {
return options.inverse(this);
}
};

据我所知,{{#each navLinks}}意味着它会遍历locals.navlinks数组。

但是 {{#ifeq ../section key}} 是如何工作的呢?我没有看到任何对数组内任何对象键或名为 ../section 的键的引用,也没有看到对 {{#if?< 之后的 eq 的任何引用。/p>

此外,{{#each navLinks}}{{#ifeq ../section key} 中的 # 的用途是什么}

最后,我的最终目标是使用 Handlebars 在我的 View 中写一些东西,例如:

if ( navlinks.key === 'projects' ) {
class="A"
} else {
class="B"
}

任何解释都会很棒。

感谢您的帮助。

朱尔斯

最佳答案

所以我想通了。之所以有 ../content 是因为每个 View 都有自己的模块。在本例中,有 `locals.section = 'nameOfView';

因为它位于 {{#each... block 中,所以从内部检索 content 数据的唯一方法是使用 转到其父级../.

因此,为了让我在页面上进行简单的检查,这是我使用的脚本:

{{#ifeq section "journey"}}it'sTrue{{else}}it'sFalse{{/ifeq}}

就是这样。我唯一还没弄清楚的是 # 部分。

关于javascript - 有人可以解释一下#ifeq ../section key如何使用handlebar.js工作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36255028/

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