2013-02-10 76 views
1

我想用數組作爲使用HtmlService和jQuery的Datatables插件的數據源。我無法傳遞數組。結果表不是渲染數組correcty - 在這個3 col表中,col1包含'1',col2包含','col3包含'2'我做錯了什麼?在jQuery中使用DataTables插件

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> 

回答

1

一些想法。讓我知道你最喜歡/最好的作品。你可以將你的[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]只是返回每個元素的值。

+0

明白了 - 兩者都很好,我可以使用二維數組進行工作。謝謝! – 159david 2013-02-10 03:08:13