less.js охранники и условные - PullRequest
1 голос
/ 29 февраля 2012

У меня есть следующий миксин:

@myColor = #123456;

.mixin(@a) when (@a = @myColor){ // do something }

Это, однако, вызывает эту ошибку: Невозможно выполнить сравнение

Почему это?

Ответы [ 3 ]

2 голосов
/ 06 марта 2012

Может показаться (начиная с lesscss 1.2.2), что охранники поддерживают только сравнение измерений и ключевых слов. (поищите в источнике «сравнение:») Так что, к сожалению, сравнение двух цветов или строк просто не будет работать.

0 голосов
/ 09 марта 2012

Просто обновите less.js до последней версии (1.2.2 - текущая), и она будет работать.

У меня была такая же проблема. Теперь это исправлено для меня (Мой вопрос с примером кода: Lesscss Mixins с охранниками. Синтаксическая ошибка ). Я думаю, это будет исправлено и для вашего примера.

0 голосов
/ 29 февраля 2012

ОБНОВЛЕНИЕ : четыре мысли (опять же, у меня нет опыта работы с самой LESS, я просто смотрю документацию).

  1. Является ли переменнаяВы передаете микшину (@a) цвет в шестнадцатеричном формате?Возможно, он не может выполнить сравнение, потому что вы передаете другой тип переменной.

  2. Просто чтобы быть уверенным, вы дважды проверили, что вы назвали правильную переменную (@myColor), а не (@mycolor).

  3. Вы пытались изменить when на (@myColor = @a), чтобы проверить, работает ли это.В одном примере в http://lesscss.org/, где они используют переменную, не определенную в mixin (они используют @media), в том порядке, в котором они ее имеют.

  4. Наконец, мой первый оригинальный ответ был попытаться:

    .mixin(@a, @b: @myColor) when (@a = @b){ // do something }

...