然后,你可以通过URL作为变量的函数:
<script>
function initializeDataTable(data_url) {
var columnSize = $('table th').size();
$('#table').dataTable({
"sDom" : 'rtFip>',
'fnDrawCallback' : function() {
$('input:checkbox, input:radio').checkbox();
},
"bStateSave": true,
'sPaginationType' : 'full_numbers',
"bServerSide" : true,
"sAjaxSource" : data_url
});
}
$(function(){
initializeDataTable("{% url 'get_menu_list' item.id %}");
});
</script>
你可以在你的URL中使用的令牌:
<script>
var url_pattern = "{% url 'get_menu_list' '{id}' %}";
function initializeDataTable(id) {
var columnSize = $('table th').size();
$('#table').dataTable({
"sDom" : 'rtFip>',
'fnDrawCallback' : function() {
$('input:checkbox, input:radio').checkbox();
},
"bStateSave": true,
'sPaginationType' : 'full_numbers',
"bServerSide" : true,
"sAjaxSource" : url_pattern.replace('{id}', id)
});
}
$(function(){
initializeDataTable(42);
});
</script>
请注意,您的令牌应该匹配的正则表达式类型成功地解析(如果使用定义,则使用{id}
作为标记,而不使用0000
)。
我对这个解决方案有点不满意,最后我写了自己的应用程序来处理javascript与Django:django.js。
有了这个应用程序,你可以这样做:
{% load js %}
{% django_js %}
<script>
function initializeDataTable(id) {
var columnSize = $('table th').size();
$('#table').dataTable({
"sDom" : 'rtFip>',
'fnDrawCallback' : function() {
$('input:checkbox, input:radio').checkbox();
},
"bStateSave": true,
'sPaginationType' : 'full_numbers',
"bServerSide" : true,
"sAjaxSource" : Django.url('get_menu_list', id)
});
}
$(function(){
initializeDataTable(42);
});
</script>
为了确保URL由Django.js加载,听ready
事件:
// Wait for document ready
$(function(){
initializeDataTable(42);
});
// Wait for Django ready
Django.onReady(function(){
initializeDataTable(42);
});
什么错误。特别是? – Austin 2012-07-09 20:09:56