2014-02-09 41 views
1

,如果我有我的SASS如下:访问上海社会科学院变量函数

$my-var: 1; 
my_function(); 

并将此作为定义的函数:

module Sass::Script::Functions 
    def my_function 
    end 
end 

是否有可能在该函数内访问SASS变量$my-var

编辑:

我使用的情况是,这个功能将在多个样式表,所有定义自己的$my-var值作为合适的(一个ID图像URL路径)一起使用。这个函数然后会在这些样式表中的很多地方被调用,所以我希望避免总是将变量传递给函数。

+1

据我有限的知识是不可能也不错。你会描述真正的问题吗?我相信有很多更好的方法来实现这一点。 –

+2

为什么你没有将该变量作为参数传递给该函数?这是显而易见的。 – phoet

+0

添加了我的用例,试图澄清我在问题背后的推理。 – DEfusion

回答

0

假设你需要下降到Ruby的层次对你的功能,你可以使用一个萨斯功能围绕它的包装是这样的:

$default-var: 1; 
@function sass-function($var: $default-var) { 
    @return ruby-function($var); 
} 
+0

没有理由像这样包装它。只要做'ruby-function($ default-var);'。 – nzifnab

+0

@nzifnab我不是不同意,但我解释了OP的问题,因为希望在调用函数时使用快捷方式。有问题的函数可能有3个参数,其中只有2个*不同*(例如'foo(1,1,$ var)','foo(2,3,$ var)','foo(9,2,$ var)',可以简写为'foo(1,1)'和'foo(2,3)')。 – cimmanon

+0

是的,这是我的推理变量永远不会改变整个单个SASS文件(其中有很多),但它在每一个不同。而且函数本身也需要成为一个ruby函数,所以这个包装器可能是我最好的选择。我不确定我是否会这样做,但是有一个很好的选择。 – DEfusion

相关问题