2015-02-25 2 views
0

Im борется с установкой для переменных цикла в mixin.Stylus, передающий переменные итерации для аргумента mixin

for num in (1..3) 
    &.item{num} 
    sprite($sprite-item{num}) 

Не работает. Ошибка возникает в третьей строке, дающей «num» для sprite() mixin.

Ниже приведена компиляция, но не работает должным образом, поскольку данный аргумент является строкой, а не переменной. Как настроить динамические переменные для цикла итерации ???

for num in (1..3) 
    &.item{num} 
    sprite('$sprite-item' + num) 

Без функции контура, код будет

&.item1 
    sprite($sprite-item1) 
&.item2 
    sprite($sprite-item2) 
&.item3 
    sprite($sprite-item3) 

Заранее спасибо за ваше время!

ответ

0

Мое первое предположение, когда вы смотрите на код (до получения вашей проблемы), заключалось в том, что обычно при работе со списками или массивами первый член был в положении 0 ... И так далее. Следовательно, вместо того, чтобы говорить 1-3, я думаю, это было бы 0-2. Попытка:

for num in (0..2) 
    &.item{num} 
     sprite($sprite-item{num}) 

Это только образованная догадка, потому что у меня недостаточно информации, чтобы действительно взглянуть.

+0

Благодарим за быстрый ответ! для num in (1..3) & .item {num} sprite ('$ sprite-item' + num) Вышеприведенное кажется рабочим. Но другая проблема. Переменные «$ sprite-item1», «$ sprite-item2» и «$ sprite-item3» не рассматриваются как переменные, а строки .. –

0

Stylus не поддерживает переменные интерполяции, но вы можете использовать lookup bif для этой задачи. Например:

for num in (1..3) 
    &.item{num} 
    sprite(lookup('$sprite-item' + num)) 
+0

Я вижу. Спасибо за подход! –

Смежные вопросы