0

我正在Blockly用他们自己的 JavaScript 代码设计自定义块,当我试图以字符串形式输出的代码是单行时,这并不复杂,但是当我试图将代码关联到我的自定义块时,通过变量的串联,单引号,双引号它开始变得混乱并产生难以解决的语法错误代码。

这是一个简单块的代码,我现在这样做:

this.EnableAllItems = function (block) {
    var target_field = block.getField('target_field');
    var code = "$('#" + target_field.getText() + " option').removeAttr('disabled');\r\n";
    return code;
}

这是我用来optionsselect输入中启用所有功能的块。

适用于简单代码。但我想做的是逐字编写 JS 代码,然后将其转换为字符串。

这样的事情是否可能:

function enableItemsLogic(targetField) {
    $('#' + targetField + ' option').removeAttr('disabled'); 
} 

this.EnableAllItems = function (block) {
    var target_field = block.getField('target_field');
    //somehow return the above function as code with the literal parameter filled in ?
    var code = enableItemsLogic(target_field.getText());
    return code;
}

是否有任何 JS 技巧可以让我做到这一点?

4

1 回答 1

0

您可以为此使用模板文字(如果您转译 JavaScript,这是 ES5 功能)。

const name = "Francis";
const foo = `Hello my name is: ${name}`;

在此处阅读更多信息:https ://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Template_literals

于 2019-11-20T16:05:10.333 回答