有人能解释一下如何#ifeq吗/section键使用handle.js工作
Can someone explaine how #ifeq ../section key works using handlebar.js
我目前正在为我的网站使用Handlebar.js,我的一个视图中有以下代码:
{{# 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}}
是如何工作的呢?我看不到对数组中任何对象键或名为..的键的任何引用/节,也没有在{{#if
之后引用eq
?
此外,{{# each navLinks}}
和{{#ifeq ../section key}}
中的#
的用途是什么?
最后,我的最终目标是在我看来用车把写一些东西,比如:
if ( navlinks.key === 'projects' ) {
class="A"
} else {
class="B"
}
任何解释都很好。
谢谢你的帮助。
Jules
所以我想明白了。原因是/内容是因为每个视图都有自己的模块。在这种情况下,存在`locals.section='nameOfView';
因为它在{{# each...
块中,所以从中检索content
数据的唯一方法是使用../
转到它的父级。
因此,为了让我在页面上做一个简单的检查,我使用了以下脚本:
{{#ifeq section "journey"}}it'sTrue{{else}}it'sFalse{{/ifeq}}
就是这样。我唯一还没有弄清楚的是#
部分。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- 有人能解释一下如何#ifeq吗/section键使用handle.js工作