2013-12-10 38 views
0

我使用less.js中的less.modifyVars()函數。函數在控制檯中正確執行,但不在代碼中

在控制檯中,我可以這樣做:

less.modifyVars({ '@body-bg' : 'black' }); 

它重新編譯少,給人一種黑色背景的頁面。所以這很好。

然後我嘗試在代碼中,有:

$scope.variableChange = function(selectedVariable) { 
    var slug = "'" + selectedVariable.slug + "'"; 
    var value = "'" + selectedVariable.value + "'"; 
    less.modifyVars({ slug : value }); 
}; 

現在,我可以看到less.modifyVars()函數執行,因爲我在控制檯中的通知,但它不似乎傳遞了正確的價值觀。所以我添加了variableChange函數內部的console.log:

console.log(slug + ":" + value); 

然後我得到的控制檯輸出:

'@body-bg':'black' 

這應該意味着less.modifyVars()函數與執行:

less.modifyVars({ '@body-bg' : 'black' }); 

但我沒有看到它。這裏有什麼問題?

回答

2

你正在你的對象的方式是錯誤的

什麼要設置的

{ "slug" : "'black'" } 

你不能設置一個變量是這樣的一個鍵,就可以不需要增加額外的報價,您只需在該字符串中添加引號。

只要創建一個對象,添加一個鍵,設置值。

var obj = {}; 
obj[selectedVariable.slug] = selectedVariable.value; 
less.modifyVars(obj); 
相關問題