2017-05-30 8 views
2

私はJekyllインクルードで指定されたインデックスを使用するオブジェクトを含むデータファイルを持っています。Jekyllで配列インデックスとして変数を使用する方法

マイページにはとても似含ま呼んでいる:0は、私はこのケースで使用する指標である

{% include components/header-filter.html items="0" %} 

{% assign filterID = include.items %} 
{% capture id %}{{ filterID }}{% endcapture %} 
{% assign filter = site.data.filters[id] %} 

それは何も出力しないその時点で3行目になるまで、この作品:

私はある含まれています。

私は間違っていますか?

乾杯!

答えて

1

私は、これは以下の変更で動作するように取得することができた:インクルードが整数でない文字列としてitemsに含ま

  1. コール:

    {% include components/header-filter.html items=0 %} 
    

    (これはあなたが持っていると仮定していることに注意してくださいインクルードの場所に問題はありません。ローカルでジキルを実行すると、それを置くことを強くお勧めしました。)

  2. capture行だけ次の行にfilterIDを渡す - それは必要とされていないと、おそらく問題の原因となった。

    {% assign filterID = include.items %} 
    {% assign filter = site.data.filters[filterID] %} 
    
  3. そして、あなたのコメントに「それは何も出力しない」を、あなたは(出力に何かする必要がありますちょうどあなたの例から省略されているかもしれませんが、完全性のために、)のはfiltersを想定してみましょうnameと呼ばれる提出した:

    {{ filter.name }} 
    
+0

ありがとうございました!それは問題であった#1でした、私はちょうど数字がほしいと思ったときに0を文字列として扱っていました。 – privatemachine

1
あなたは {%「真ん中の男を切り出す」でこれを行うことができます

株式会社キャプチャ文字列に変換されたため、リュド成分/ヘッダfilter.htmlアイテム= 0%}

{% assign filter = site.data.filters[include.items] %} 

あなたが働いていなかった理由です。数学フィルタを使用して文字列を整数に変換できます。例: {% assign id = id | plus: 0 %}値は変更されませんが、液体は整数として扱われます。

また、引用符を省略して整数として呼び出すこともできます。 {% include components/header-filter.html items=0 %}

+0

ああ、これだった! '' 0 ''を文字列として扱っていました。ご協力いただきありがとうございます! – privatemachine

関連する問題