Передайте переменную из цикла mixin @each в @content - PullRequest
0 голосов
/ 28 августа 2018

Можно ли передать переменную из цикла @each, работающего внутри mixin, в @content.

См. Пример ниже о том, как я пытаюсь использовать переменную $passthis в содержимом @content.

// data formatted as an $key and $value array
$data: (
  a: 'house',
  b: 'electro',
  c: 'techno'
);


// example mixing running a @each loop using passed array
@mixin example($array) {

  // each converting $array into $key and $value for each loop 
  @each $key, $value in $array {

    // turn $value into $passthis var
    $passthis: $value;

    // content which contains $passthis variables 
    @content

  }
}


.music {

  @include example($data) {

    &-#{$passthis} {
      display: none !important;
    }

    &-2-#{$passthis} {
      display: inline !important;
    }

  }
}

Когда я пытаюсь использовать #{$passthis} в примере mixin, я получаю эту ошибку.

Undefined variable: "$passthis".

Разве нельзя использовать @content таким образом?

См. sassmeister для живой демонстрации.

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете преобразовать $passthis в глобальную переменную, используя этот синтаксис:

$passthis: $value !global;

Я создал sassmeister: https://www.sassmeister.com/gist/36286bdae2bcc6f8b278254b8ec5b205

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...