Javascript 在模板中查找密钥失败
我试图在字典中获取特定列表,但首先我得到了错误:“无法查找密钥”,在internet上搜索时,我发现了此解决方案的一个步骤:Javascript 在模板中查找密钥失败,javascript,django,Javascript,Django,我试图在字典中获取特定列表,但首先我得到了错误:“无法查找密钥”,在internet上搜索时,我发现了此解决方案的一个步骤: {% with obj1.page.val2 as val2 %} {{ obj1.val1|default:val2 }} {% endwith %} 但它不起作用。以下是我的代码: keyData = '\'' + id + '|' + id2 + '|' + id3 + '\''; console.log(keyData); var val2;
{% with obj1.page.val2 as val2 %}
{{ obj1.val1|default:val2 }}
{% endwith %}
但它不起作用。以下是我的代码:
keyData = '\'' + id + '|' + id2 + '|' + id3 + '\'';
console.log(keyData);
var val2;
try
{
{% with keyData as val2 %}
console.log(val2);
datas = {{product_prices_complex_key|get_item:val2|safe}};
{% endwith %}
console.log(datas);
}catch(err){console.log(err);}
关键数据:WA5-8 | 2 | 5
并且在字典中。您需要将product\u prices\u complex\u密钥转换为JS对象,以便使用它执行动态查找。标签提供了一种实现这一点的方法 这会出现在页面上脚本之前的某个位置,但不会出现在脚本标记中
{{ product_prices_complex_key|json_script:"data" }}
然后可以像这样访问这些数据
var product_prices_complex_key = JSON.parse(document.getElementById('data').textContent);
keyData = '\'' + id + '|' + id2 + '|' + id3 + '\'';
console.log(keyData);
try
{
datas = product_prices_complex_key[keyData];
console.log(datas);
}catch(err){console.log(err);}
{%keyData为val2%}
keyData是JS变量吗?函数buildTable($el,cells,rows,level,id,id2,id3){var i;var j;var row var columns=[]var data=[]var-keyData='';var-datas=null;它在模板中脚本的开头声明。如果keyData
是一个JS变量,那么它将不起作用。Django将首先呈现模板并在运行任何JS之前解析所有标记,在您的情况下,您将None
分配给val2
because keyData在您的上下文中不存在keyData='\''+id+'\'''.'+id2+'.'+id3+'\'';这是我的变量,有一个值,在控制台日志中显示'WA5-8 | 2 | 5'@IainShelvington是对的。您对javascript和django模板标记的工作方式有误解。