首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Jade模板变量填充到内联函数

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

Stack Overflow用户
提问于 2016-01-12 17:39:44
回答 2查看 273关注 0票数 0

我在试着用JSCharts

代码语言:javascript
复制
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并做一些事情。

EN

回答 2

Stack Overflow用户

发布于 2016-01-12 18:01:13

现在我正在使用这个解决方案:

代码语言:javascript
复制
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,然后是数组。

票数 0
EN

Stack Overflow用户

发布于 2016-01-12 18:42:44

您可以在脚本标记中使用JADE中的Unescaped String Interpolation

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

代码语言:javascript
复制
var array = new Array(!{newArray})

应该可以正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34740051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档