Javascript 在swig模板中访问连字符json变量
使用swig模板和预先存在的json数据(不幸的是,这些数据无法更改)时,当变量被连字符连接时,我在呈现数据时遇到了问题。发现这种情况可以通过使用括号符号来处理,如中所述,但由于某些原因,我无法达到预期的结果。我知道其他模板语言,但我热衷于使用swig来提高性能和其他好处 非常感谢您的任何见解 测试用例文件: layout.swigtmplJavascript 在swig模板中访问连字符json变量,javascript,json,swig-template,Javascript,Json,Swig Template,使用swig模板和预先存在的json数据(不幸的是,这些数据无法更改)时,当变量被连字符连接时,我在呈现数据时遇到了问题。发现这种情况可以通过使用括号符号来处理,如中所述,但由于某些原因,我无法达到预期的结果。我知道其他模板语言,但我热衷于使用swig来提高性能和其他好处 非常感谢您的任何见解 测试用例文件: layout.swigtmpl <body> {% block content %}{% endblock %} </body> 在布局文件中,将json数据
<body>
{% block content %}{% endblock %}
</body>
在布局文件中,将json数据分配给对象进行测试,但没有love
$(function() {
var json = (function () {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': 'index.json',
'dataType': "json",
'success': function(data) {
json = data;
}
});
console.log("json = " + json['target-div']); // Works fine in log
return json;
})();
});
文件:
不要将
index.json
的内容作为整个locals
对象传递,只需将数据放在更深一层的键上,这样就可以使用括号表示法
swig.render('index.swig', { locals: { data: indexjson }});
{{ data['target-div'] }}
您确定您的JSON对象存在于index.swig的上下文中吗?看起来您在JSON对象的上下文之外获得了
targetdiv
的值。根据这个逻辑,您应该得到如下的target div
值:{{{target div}}
,这当然是无效的语法。相当确定它确实存在于相同的上下文中。实际上,可以忽略ajax测试。我只是添加了它作为参考。Thx Matthew,我稍后会制作一个plunker或fiddle并发布在这里。我相信这会让我们走出泥潭。非常感谢您的支持!Swig>*
$(function() {
var json = (function () {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': 'index.json',
'dataType': "json",
'success': function(data) {
json = data;
}
});
console.log("json = " + json['target-div']); // Works fine in log
return json;
})();
});
swig.render('index.swig', { locals: { data: indexjson }});
{{ data['target-div'] }}