使用django模板中Javascript变量的值呈现模板上下文
请不要将此问题标记为无效。我在stackoverflow中没有发现与下面提到的问题有关的任何问题 我有一个django模板。我将以下上下文传递给它使用django模板中Javascript变量的值呈现模板上下文,javascript,django,Javascript,Django,请不要将此问题标记为无效。我在stackoverflow中没有发现与下面提到的问题有关的任何问题 我有一个django模板。我将以下上下文传递给它 context = { '1_title': 'Title 1', '2_title': 'Title 2', '3_title': 'Title 3', '4_title': 'Title 4', } return render(request, 'index.html', context) 我有一个HTML文件,其中有一个下拉列表。下拉列表的值
context = {
'1_title': 'Title 1',
'2_title': 'Title 2',
'3_title': 'Title 3',
'4_title': 'Title 4',
}
return render(request, 'index.html', context)
我有一个HTML文件,其中有一个下拉列表。下拉列表的值类似于1,2,3,4。我已经向它注册了onClick函数
我需要实现这个功能。我将在onClick函数中获取值。然后,我将把接收到的值与_title连接起来,并向其存储一个javascript变量。现在我需要使用该javascript变量来引用django上下文。我无法做到这一点。我在stackoverflow上做了大量的搜索。似乎没有人回答我的问题
javascript函数如下所示:
function getContextValue(value) {
var key = value + '_title';
return {{ key }}
}
如果我在下拉列表中选择1,则上述函数的键将作为1_标题。我需要从上下文返回1_title值,即title 1
对我来说,它不工作,只返回1_标题。我甚至尝试返回{{'key'}}。在这种情况下,它返回key
请对我好一点。这对你来说可能是个简单的问题,但对我来说不是。如果你想访问JS中的上下文信息,你需要以某种方式将其交付给JS 将您的上下文更改为类似这样的内容,以便在模板中更容易访问
context = {}
context['data_for_select'] = {
'1_title': 'Title 1',
'2_title': 'Title 2',
'3_title': 'Title 3',
'4_title': 'Title 4',
}
return render(request, 'index.html', context)
我假设模板中有类似的内容:
<select name="dropdown">
{% for key, title in data_for_select.items %}
<option value="{{key}}">{{title}}</option>
{% endfor %}
</select>
您可以在JS中使用它,如:
var data = JSON.parse(document.getElementById('select-data').textContent);
通过这种方式,您已经向JS公开了模板上下文数据。我添加了一个关于如何向JS公开模板上下文数据的通用答案。我不确定这是否是你想要的。不管怎样,我希望它为你指明了正确的方向。
var data = JSON.parse(document.getElementById('select-data').textContent);