2016-03-28 3 views
1

を使用して、鍵作品explaineことができます:その後、誰かが私は現在、私のウェブサイトのためのHandlebar.jsを使用していると私は私のビューのいずれかで、次のコードを持っているか#ifeq ../section 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); 
    } 
}; 

私はことを理解しますは、locals.navlinksの配列を通過することを意味します。

しかし、{{#ifeq ../section key}}はどのように機能しますか? ../sectionという配列内のオブジェクトキーへの参照や、{{#ifの後のeqへの参照はありません。

また{{# each navLinks}}{{#ifeq ../section key}}#の目的は何ですか?

最後に私の最終目標は次のようにハンドルを使用して私の見解で何かを書くことになります:

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

どれ説明は素晴らしいことです。

ありがとうございました。

ジュール

答えて

1

私はそれを理解しました。 ../contentがある理由は、各ビューに独自のモジュールがあるためです。この場合、 `locals.section = 'nameOfView'があります。

{{# each...ブロック内にあるので、contentのデータを取得する唯一の方法は、../を使用してその親に移動することです。

だから私は、ページ上の簡単なチェックを行うようにするために、これは私が使用するスクリプトだった:

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

そして、それのthats。私がまだ理解していないのは、#の部分だけです。

+0

あなたの質問に答えて(あなた自身の答えで)マークしてください。また、ブロックはハンドルバーにポンド記号(#)とそれに続く式で表されます。ブロックは{{/ expression}}を閉じることで終わります。 –

関連する問題