繁体   English   中英

将Jade模板变量填充到内联函数

[英]Padding Jade template variable to inline function

我正在尝试使用JSCharts

block content
| <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div>

script.
    var myData=new Array()
    var myData = new Array([10, 20], [15, 10], [20, 30], [25, 10], [30, 5]);
    var myChart = new JSChart('chartcontainer', 'line');
    myChart.setDataArray(myData);
    myChart.draw();

我在nodejs中动态创建了一个数组

[ [10, 20], [15, 10], [20, 30], [25, 10], [30, 5] ]

然后传给玉

res.render('chart',{newArray:array});

但是,我无法在上述内联函数中使用它。

我尝试使用var myData="#{newArray}"但它仅给出单个字符串,如10,20,15,10,20,30...这是不可用的。

我也尝试发送Json对象。 但是在"#{myJson}"和/或stringify之后也无法使用

我能做什么? 另外,有什么办法可以在脚本之外使用此script. 块? 因为即使我将文件包含在head ,当我尝试它时也无法找到JSChart() 如果有可能,那么我可以迭代json并执行某些操作。

现在,我正在使用以下解决方案:

block content
| <div id="chartcontainer">This is just a replacement in case Javascript is not available or used for SEO purposes</div>

-var myJson=JSON.stringify(json);
script.
    var array = new Array();
    var myData=JSON.parse(("#{myJson}").replace(/&quot;/g,'"'));
    myData.forEach(function(data)
    {
        array.push([data.x,data.y]);
    })
    var myChart = new JSChart('chartcontainer', 'line');
    myChart.setDataArray(array);
    myChart.draw();

但这看起来确实是愚蠢和不必要的处理。 在节点中创建json,然后将其发送到jade,将json转换为字符串,再将json转换为数组。

您可以在脚本标记内的JADE中使用未转义的字符串插值

只需使用!{}标签即可。

var array = new Array(!{newArray})

应该工作正常

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM