2016-08-12 4 views
0

я следующее, если заявление в Джекила:Джекил, если оператор не работает

{%assign current = page.url | split: '/' %} 
<ul> 
<li> 
    <a href="../product-type/index.html" 
    {% if current == "product-type" %} class="active-circle"{% endif %}> 
    <div class="circle"></div> 
    </a></li> 
</ul> 

UPDATE: Даже если я иду в скомпилированный HTML файл и добавить класс «активный-круг» вручную, то CSS для этого класса не отображается в моем браузере, и ссылка не имеет этого класса, когда я проверяю элемент!

Это работает раньше (у меня просто есть CSS, который меняет цвет фона div class = "circle"). После того, как я изменил назначение сборки в указанную папку, она перестала работать. Я распечатал, что {{current}}, чтобы быть уверенным, и это действительно то, что я проверяю. Я также попытался добавить только тест «if» в другом месте, и это тоже не работает.

Что-то не так с моим утверждением if! Я смотрел на это часами и понятия не имею, что пошло не так!

ответ

1

Фильтр жидкости split всегда возвращает массив.

Try:

{% assign myArray = "https://stackoverflow.com/a/b/c/" | split: "/" %} 
<p>{{ myArray }}</p>   ---> abc 
<p>{{ myArray | inspect}}</p> ---> ["", "a", "b", "c"] 

В вашем случае, у вас есть:

{% assign current = "/product-type/" | split:"/" %} 
<p>{{current | inspect}}</p>  --> ["", "product-type"] 
<p>{{current.last | inspect}}</p> --> "product-type" 

Теперь вы можете сравнить с:

{% if current.last == "product-type" %} --> true