Проверьте, существует ли карта SASS

Как проверить, существует ли карта SASS, и только определить ее, если это не так?

Я пытался:

@if ($myMap) {
// do someting
}

и

@if variable-exists($myMap) {
// do something
}

Но я получаю сообщение об ошибке «Неопределенная переменная: «$ myMap»? Я уверен, что это довольно просто, но я не могу найти ответ в Интернете?

Спасибо


person James Howell    schedule 12.07.2018    source источник
comment
Возможно, попробуйте без $ в операторе if: stackoverflow.com/a/13237776/3909886   -  person Sam Willis    schedule 12.07.2018
comment
Но в названии карты стоит $, так что она нужна?!   -  person James Howell    schedule 12.07.2018


Ответы (2)


Это немного сбивает с толку, но при проверке существования переменной пропустите $. Вам также необходимо установить его как глобальную переменную, чтобы она не ограничивалась только блоком @if. Это работает:

@if variable-exists(myMap) == false {
  $myMap: (
    1: "foo",
    2: "bar"
  ) !global;
}

// ... now you can use your variable
person mfluehr    schedule 16.07.2018

Вы можете настроить карту так, чтобы она существовала как null по умолчанию, что означает, что если она нигде явно не установлена, то переменная все еще существует, но с нулевым значением. Затем вы можете проверить, является ли значение переменной нулевым, используя оператор if.

$myMap: null !default;

@if $myMap == null {
  
}

person Sam Willis    schedule 12.07.2018