有整齊地分離株預裝串行方式至少清潔data
來自其他代碼的數據。
實施例1 -assigning預加載數據到全局變量上window
,在你隨後的表組件使用它:
<html>
<meta charset="utf-8">
<body>
<script>
// Loading the data for use in JS components here
(function() {
window.tableData = JSON.parse('{{ table_data }}');
}());
</script>
<script src="table.js"></script>
<!-- table.js uses window.tableData when building the table -->
</body>
實施例2 -encapsulate表組件作爲模塊,從初始化它主模板並傳遞預加載的數據。
<html>
<meta charset="utf-8">
<body>
<table id="theTable"></table>
<script src="table.js"></script>
<!-- table.js exports itself globally as window.table -->
<script>
// Loading the data and initializing table component
(function() {
var tableEl = $('#theTable');
var tableData = JSON.parse('{{ table_data }}');
window.table.init(tableData, tableEl);
}());
</script>
</body>
依此類推!
想要完全避免混用Django模板語言和JavaScript?
- 通過XHR傳遞所有數據 - 在加載頁面後向服務器發出AJAX請求;編寫一個Django視圖,將您需要的數據返回爲JSON,這很容易在JavaScript中解析。
想要的一切,保持Django的模板語言了和避免額外的XHR時獲取數據?
- 研究如何在React.js或AngularJS等框架上構建應用程序,並利用組件的服務器端渲染。
{{data}} - 它是json數據嗎? http://stackoverflow.com/questions/38620816/django-passing-json-data-to-static-getjson-javascript/38621448 – Igor
可能重複的[Django模板變量和Javascript](http://stackoverflow.com/questions/298772/django-template-variables-and-javascript) – Cory