/ / Виділити вкладену карту sass на нову карту - sass, susy, sass-maps

Виділити вкладену карту sass на нову карту - sass, susy, sass-maps

Як я можу виділити вкладену карту SASS на нову карту? Наприклад, у мене така карта є такою:

$susy-setting: (
s: (
"columns": 4,
"gutters": 30px,
),

m: (
"columns": 8,
"gutters": 30px,
),

l: (
"columns": 12,
"gutters": 30px,
)
);

Тоді мені потрібно ізолювати кожну карту всередині після циклу, тому що мій інший міксен потребує карту для свого параметра.

@each $setting in $susy-setting{
@include susy-settings-block($setting) { // This mixin need map
@for $i from 1 through map-get($setting, "columns") {
@content;
}
}
}

Відповіді:

0 для відповіді № 1

Щоб відповісти на ваше основне запитання, вам потрібно буде отримати як ключ, так і значення у вашому циклі: @each $size, $setting in $susy-setting. The $size змінна зберігатиме ключ (наприклад, s, m, l), поки $setting змінна зберігає значення карти, призначене для цього ключа.

EDIT: Я бачив ваш коментар про мою суть, яка надає трохи більше контексту. Спробуйте це:

@mixin susy-settings-block(
$name,
$config: $susy-settings
) {
// store the old settings
$global: $susy;

// Get the new settings by name
$new: map-get($config, $name);

// apply the new settings
$susy: map-merge($susy, $new) !global;

// allow nested styles, using new settings
@content;

// return to the initial settings
$susy: $global !global;
}