我有example.scss
个文件。在导入(解析)时,我想将值推送到地图。
// Declare selectors
register(example);
在导入之前,已导入以下内容:
$example-map: (
);
@function register($key){
$pointless: map-set($example-map, $key, true); // Have to assign to a variable
@return true; // Have to return something
}
这是无效的,因为看起来无法在选择器之外调用函数。这是为什么?
答案 0 :(得分:1)
您可以使用mixin代替。当然,打字要多一点,但它应该有用。
这是我的快速测试:
$register: ();
@mixin register ($key) {
@if not index($register, $key) {
$register: append($register, $key);
}
}
@include register(foo);
@include register(bar);
@include register(bar);
@include register(baz);
body {
content: $register;
}
然后,您可以测试它是否仅使用index
注册。
@if index($register, foo) {
.foo {
color: red;
}
}
这是一个小型演示:
Sassmeister:http://sassmeister.com/gist/6069ebaba50d29052eeb