将数组从 EJS 传递到 Javascript

新手上路,请多包涵

我正在尝试将数组从 ejs 传递到 JavaScript。我可以获取 ejs 中的值,但不能从 JavaScript 中获取。一直以来我都未定义,因为变量“test”的内容是一个字符串而不是一个数组。

 <script>

var test = '<%- level_tab %>';
alert(test);

function level(s1,s2){
            var s1 = document.getElementById(s1);
            var s2 = document.getElementById(s2);
            s2.innerHTML = "";
            if(s1.value == "level_0"){
                var optionArray = test;
            }
            else if(s1.value == "level_1"){
                var optionArray = ["test|test01", "test0|test02"];
            }
 for(var option in optionArray){
                var pair = optionArray[option].split("|");
                var newOption = document.createElement("option");
                newOption.value = pair[0];
                newOption.innerHTML = pair[1];
                s2.options.add(newOption);
            }
        }
</script>

原文由 amine_detter 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 533
2 个回答

您必须对数组进行字符串化

var test = <%- JSON.stringify(level_tab) %>;

我不熟悉 EJS,但一般来说,即使 EJS 中的语法略有不同,也应该应用相同的原则。

原文由 razakj 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题