JS에서 django의 변수를 사용하는 대부분의 SO 예제에는 HTML 내부에 JS가 있습니다. JS를 별도의 파일에 넣으려고했지만 작동이 중지되었습니다. 템플릿 내에서 JS를 사용할 때
{% url "distributors:search_dist" %}
잘 작동하고 나를 이동 distributors/search_dist
하지만 별도의 JS 파일로 시도하면 나를 이동합니다 %7B%%20url%20%22distributors:search_dist%22%20%%7D
.
이 동작을 수정하는 방법은 무엇입니까?
일반적으로 필요한 경우 다른 템플릿에서 확장 할 수있는 기본 템플릿에 응용 프로그램 전체 개체를 설정합니다.
# base.html (upper-most HTML template)
. . .
<script>
var myApp = {
staticUrl: '{{ STATIC_URL }}',
distributorsSearchDistUrl: '{% url "distributors:search_dist" %}'
}
</script>
</body>
를 확장 base.html
하거나 확장 하는 템플릿에 포함 된 경우 다른 템플릿에서 액세스 할 수 있습니다 base.html
. 거기에서 포함될 수있는 JavaScript의 변수에 액세스 할 수 있습니다.
# some_page.html
{% extends 'base.html' %}
{% block js %}
<script src="extra.js"></script>
{% endblock %}
# extra.js
'use strict';
console.log(myApp.staticUrl);
보기에 특정한 추가 값을 사용하여 템플릿에서이 개체를 항상 확장 할 수 있습니다.
# another-template.html
{% extends 'base.html' %}
{% block js %}
{{ block.super }}
<script>
myApp['someValue'] = '{{ variableFromTheView }}';
</script>
<script src="extra.js"></script>
{% endblock js %}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다