我正在尝试使用数组作为数据源,使用HtmlService和jquery的Datatables插件。我在传递数组时遇到问题。结果表不能正确渲染数组 - 在这3个col表中,col1包含'1',col2包含','col3包含'2'我做错了什么?
function doGet() {
var temp = HtmlService.createTemplateFromFile('example2');
temp.j = [1,2,3];
return temp.evaluate();
}
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>DataTables example</title>
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.1/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
<script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.1/jquery.dataTables.min.js"></script>
<script type="text/javascript" charset="utf8">
$(document).ready(function() {
$('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' );
$('#example').dataTable( {
"aaData": [
/* Reduced data set */
<?= j ?>
],
"aoColumns": [
{ "sTitle": "Engine" },
{ "sTitle": "Browser" },
{ "sTitle": "Platform" }
]
} );
} );
</script>
</head>
<body>
<div id="demo"></div>
</body>
</html>
答案 0 :(得分:2)
一些想法。让我知道你最喜欢/最好的。您可以将[1,2,3]
写为字符串并将其放在模板中。像这样:
temp.j = Utilities.jsonStringify([1,2,3]);
<?!= j ?>
注意:此处需要!
,因为它会强制按原样打印字符串。请参阅“Force-Printing Scriptlets”。
或者您可以像这样在html模板中遍历数据的每个元素。
[<? for (var i = 0; i < j.length; ++i) { ?>
<?!= j[i]?>,
<? } ?>]
注意:方括号和逗号是必需的,因为j[i]
只返回每个元素的值。