LESS不解析javascript交互的变量
我无法正确解析变量,然后将其传递给javascriptLESS不解析javascript交互的变量,less,Less,我无法正确解析变量,然后将其传递给javascript @bp1 : "lorem"; @bp2 : "ipsum"; @bp3 : "foo"; @bp4 : "bar"; @bp5 : "baz"; @bp6 : "ham"; @bpN: 6; .loopingClass (@index) when (@index > 0) { @val: ~'@{bp@{index}}'; @value: ~'"@{val}".toUpperCase()'; @media scree
@bp1 : "lorem";
@bp2 : "ipsum";
@bp3 : "foo";
@bp4 : "bar";
@bp5 : "baz";
@bp6 : "ham";
@bpN: 6;
.loopingClass (@index) when (@index > 0) {
@val: ~'@{bp@{index}}';
@value: ~'"@{val}".toUpperCase()';
@media screen and (min-width: @value) {
body { font-family: ~'"@{bp@{index}}"'; }
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@bpN);
以下代码将导致:
@media screen and (min-width: "ham".toUpperCase()) {
body {
font-family: "ham";
}
}
@media screen and (min-width: "baz".toUpperCase()) {
body {
font-family: "baz";
}
}
@media screen and (min-width: "bar".toUpperCase()) {
body {
font-family: "bar";
}
}
@media screen and (min-width: "foo".toUpperCase()) {
body {
font-family: "foo";
}
}
@media screen and (min-width: "ipsum".toUpperCase()) {
body {
font-family: "ipsum";
}
}
@media screen and (min-width: "lorem".toUpperCase()) {
body {
font-family: "lorem";
}
}
我试图动态设置变量,然后用javascript与之交互。我错过了什么?用更少的代码就可以做到这一点吗?内联javascript评估的正确语法是使用反勾号。因此,通过其他次要修复,您的代码将变成:
@bp1 : "lorem";
@bp2 : "ipsum";
@bp3 : "foo";
@bp4 : "bar";
@bp5 : "baz";
@bp6 : "ham";
@bpN: 6;
.loopingClass (@index) when (@index > 0) {
@val_: 'bp@{index}';
@val: @@val_;
@value: ~`@{val}.toUpperCase()`;
@media screen and (min-width: @value) {
body { font-family: @val; }
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@bpN);
并引用过度使用删除和进一步优化(小于1.4.0和更高版本):
内联javascript计算的正确语法是使用反勾号。因此,通过其他次要修复,您的代码将变成:
@bp1 : "lorem";
@bp2 : "ipsum";
@bp3 : "foo";
@bp4 : "bar";
@bp5 : "baz";
@bp6 : "ham";
@bpN: 6;
.loopingClass (@index) when (@index > 0) {
@val_: 'bp@{index}';
@val: @@val_;
@value: ~`@{val}.toUpperCase()`;
@media screen and (min-width: @value) {
body { font-family: @val; }
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@bpN);
并引用过度使用删除和进一步优化(小于1.4.0和更高版本):
内联javascript计算的正确语法是使用反勾号。因此,通过其他次要修复,您的代码将变成:
@bp1 : "lorem";
@bp2 : "ipsum";
@bp3 : "foo";
@bp4 : "bar";
@bp5 : "baz";
@bp6 : "ham";
@bpN: 6;
.loopingClass (@index) when (@index > 0) {
@val_: 'bp@{index}';
@val: @@val_;
@value: ~`@{val}.toUpperCase()`;
@media screen and (min-width: @value) {
body { font-family: @val; }
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@bpN);
并引用过度使用删除和进一步优化(小于1.4.0和更高版本):
内联javascript计算的正确语法是使用反勾号。因此,通过其他次要修复,您的代码将变成:
@bp1 : "lorem";
@bp2 : "ipsum";
@bp3 : "foo";
@bp4 : "bar";
@bp5 : "baz";
@bp6 : "ham";
@bpN: 6;
.loopingClass (@index) when (@index > 0) {
@val_: 'bp@{index}';
@val: @@val_;
@value: ~`@{val}.toUpperCase()`;
@media screen and (min-width: @value) {
body { font-family: @val; }
}
.loopingClass(@index - 1);
}
.loopingClass (0) {}
.loopingClass (@bpN);
并引用过度使用删除和进一步优化(小于1.4.0和更高版本):
这是可行的,但是@uppercase变量用引号括起来了。有没有办法避免这种情况,或者我需要将输出保存到另一个变量,然后进行.replace(“,”)?啊,要删除引号,你也可以使用带反勾号的转义…(嗯,我想我没有注意到这是你在原始示例中的意图)。我已经用它更新了我的答案。这是可行的,但是@uppercase变量被括在引号中。有没有办法避免这种情况,或者我需要将输出保存到另一个变量,然后。替换(“,”)?啊,要删除引号,也可以使用带反勾的转义。。(嗯,我想我确实错过了你在原始示例中的意图)。我已经用它更新了我的答案。这是可行的,但是@uppercase变量被用引号括起来了。有没有办法避免这种情况,或者我需要将输出保存到另一个变量,然后进行.replace(“,”)?啊,要删除引号,你也可以使用带反勾号的转义…(嗯,我想我没有注意到这是你在原始示例中的意图)。我已经用它更新了我的答案。这是可行的,但是@uppercase变量被括在引号中。有没有办法避免这种情况,或者我需要将输出保存到另一个变量,然后。替换(“,”)?啊,要删除引号,也可以使用带反勾的转义。。(嗯,我想我确实错过了你在原始示例中的意图)。我已经更新了我的答案。