我在 grails 应用程序中使用 Google 可视化插件。我试图绘制一个折线图,但失败了,因为 x 轴字符串数据周围的单引号被转义了。
在我的 gsp 页面中我输入:
<gvisualization:apiImport/>
<%
def columns = [['string', 'Date'], ['number', 'Value']]
def chartData = [['20.02.2014', 123], ['21.02.2014', 456]]
%>
<gvisualization:lineCoreChart
elementId="chartView" columns="${columns}" data="${chartData}" width="250" height="200"/>
翻译成这样(页面的源代码):
<script type="text/javascript">
google.load('visualization', '1', {'packages': ['corechart']});
google.setOnLoadCallback(drawVisualization);
function drawVisualization() {
visualization_data = new google.visualization.DataTable();
visualization_data.addColumn('string', 'Date');
visualization_data.addColumn('number', 'Value');
visualization_data.addRow(['20.02.2014', 123]);
visualization_data.addRow(['21.02.2014', 456]);
visualization = new oogle.visualization.LineChart(document.getElementById('chartView'));
visualization.draw(visualization_data, {width: '250', height: '200'});
}
</script>
我正在使用 grails 2.3.5 和 Google 可视化插件 0.6.2。我不知道为什么单引号在生成的 JS 代码中被转义。任何提示表示赞赏!
提前非常感谢!
编辑:
我调试了插件。数组中的第一个值被正确识别为字符串。然后该值被包含在单引号中。所以我猜想当生成的Javascript写入页面时会引入错误。所以这可能是插件中的一个错误...?
最佳答案
晚了几个月,但对于遇到此问题的其他人来说,事实证明这是 Grails 2.3.5 及更高版本的默认配置文件。
解决方案可以在这里找到:Grails 2.3.5 default Config.groovy causes render issues for Google Visualization tags
有问题的行是 scriptlet = 'html'
。 security docs描述如何添加每个插件编码或每个页面编码。
这是每个插件的编码。只需将其添加到您的 Config.groovy,它将在所有页面上运行。
googleVisualization.grails.views.gsp.codecs.scriptlet = "none"
关于javascript - 为什么单引号会被 grails 的 google 可视化插件转义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972758/