将数组从EJS传递到Javascript

ami*_*ter 1 javascript arrays ejs node.js express

我试图将数组从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>
Run Code Online (Sandbox Code Playgroud)

raz*_*akj 5

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

var test = <%- JSON.stringify(level_tab) %>;
Run Code Online (Sandbox Code Playgroud)

我对EJS不熟悉,但是即使EJS的语法略有不同,通常也应遵循相同的原则。


eng*_*rce 5

从EJS引用JSON到JS中的JSON对象

删除单引号:

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