函数在控制台中正确执行,但在代码中不正确

function executes correctly in console, but not in code

本文关键字:代码 不正确 控制台 函数 执行      更新时间:2024-06-12

我使用的是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' });

但我看不出来。这里有什么问题?

制作对象的方式是错误的

您设置的是

{ "slug" : "'black'" }

您不能将变量设置为这样的键,也不需要添加额外的引号,您只是在字符串中添加引号。

只需制作一个对象,添加一个关键点,设置值。

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