javascript - 将数组从 EJS 传递到 Javascript

标签 javascript arrays node.js express ejs

我正在尝试将一个数组从 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>

最佳答案

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

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

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

关于javascript - 将数组从 EJS 传递到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179668/

相关文章:

javascript - 如何在每次点击后通过javascript添加自动序列号

javascript - react 悬念防止后备旋转器闪烁

c - 为什么这不指向数组中的空字符? ('\0')

javascript - 使用 ADFS 和 nginx 实现 SSO

javascript - 从应用了 'overflow: scroll/auto' 样式的 div 中删除可拖动元素?

javascript - Angular JS : get ng-model on ng-change

JavaScript - 从 for 循环存储的所有内容都存储为未定义

C++ 对象与结构内存开销

javascript - Q 链接不正确

javascript - Node : run module in sandbox