以下是我的.ajax
电话:
(function($){
var bindEvents = function(node){
$('.btn-fax', node).bind('click', function(e){
e.preventDefault();
var data = {};
var fax_number = {{ contract.request.customer.convert_fax_number }};
$.ajax({
url : $(this).attr('href'),
type: 'POST',
data : data,
success: function(data, textStatus, jqXHR) {
if (data.success) {
console.log('place 1');
if (data.redirect_to) {
console.log('place 2');
window.location.href = data.redirect_to;
}
else if (data.reload) {
console.log('place 3');
window.location.reload();
}
}
else {
console.log('place 4');
alert('Error! See console for details :(');
console.error(textStatus, data);
}
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(fax_number);
console.log(fax_number === '');
if (!fax_number) {
alert('Please, attach the fax number to your profile');
return;
}
console.error(textStatus, errorThrown);
}
});
return false;
});
};
$.lw.on('init', function(args){
bindEvents(args.node);
});
})(typeof(django) == 'undefined' ? jQuery : django.jQuery);
这是我的django模板中使用按钮的部分:
<a href="{% url "contracts:fax" pk=object.contract.pk %}" class="btn pull-right {{ object.state|request_state_color }} darken-2 btn-fax" data-turbolinks="false">{%trans "Fax contract" %}</a>
我的代码不是由Django呈现的 - 它是在一个单独的JavaScript文件中,而不是在Django模板中。因此,我无法将变量定义为var fax_number = {{ contract.request.customer.convert_fax_number }};
Somme人告诉我,我可以使用jQuery .data()函数,或者我可以构建一个服务器端api,将传真号码作为JSON对象的一部分呈现(使用django jsonrequest方法)。任何人都有时间告诉我如何用我的代码做这件事。
我们告诉我,我可以使用id "contact"
将数据传真属性添加到DIV代码,然后使用var fax = $("#contact").data("fax)
。问题是我不知道如何使用Django。我最近开始使用javascript,这就是我需要你帮助的原因。
提前致谢!
P.S。如果我的问题不清楚,请告诉我?
答案 0 :(得分:1)
如果您想将一些动态数据从django传递到您的javascript,则需要在模板中执行此操作。
有两个原因:
正如你所说,你的模板看起来像是:
<html>
<head>
...
</head>
<body>
...
<script type="text/javascript">
/* Remember to wrap these in quotes if they need to be strings.
You may also need to use the |safe filter for some data types
to ensure django doesn't escape them (e.g. JSON) */
var fax_number = {{ contract.request.customer.convert_fax_number }};
</script>
<!-- Import your JS file AFTER defining your variables -->
<script src="src.js"></script>
</html>