2014-02-09 78 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

相關問題