我有一个用AJAX调用填充JSON的表。每行都有一个指向另一个Flask路线的链接。我能够创建行但是url没有指向正确的id,它们是空的。为什么这不能正常工作?
var header = tab.createTHead();
var row = header.insertRow(0);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
cell1.innerHTML = "<b>Col1</b>";
cell2.innerHTML = "<b>Col2</b>";
for (var i = 0; i<data.length; i++){
var row = tab.insertRow(i+1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var child = data[i]['_id'];
cell1.innerHTML = '<a href="/query/{{child}}" >' + child + '</a>';
cell2.innerHTML = (data[i]['similarity']).toFixed(3);
}
@app.route("/query/<hashcode>", methods=['GET',"POST"])
@app.route("/query/", methods=['GET',"POST"])
def query(hashcode=None):
if not hashcode == None:
print hashcode
sim = similarity(hashcode)
else:
print "None Received"
sim = []
return render_template('query2.html', hashcode = hashcode, sim = sim)
答案 0 :(得分:3)
正如塞扎尔所说,我将发表评论作为答案:
在当前的javascript中,您无法在形成字符串时直接输入{{child}}
之类的内容,并希望javascript注意到这一点,并在创建string
时将其解析为其值。
所以你必须做的就像你将孩子追加到text
的{{1}}部分:
<a>
请注意我说当前的javascript?在将来的ES6中,您可以使用`notation:
以这种方式创建一个字符串cell1.innerHTML = '<a href="/query/' + child + '" >' + child + '</a>';
和var testStr = "test";
var aString = `this is a ${testStr}`;
现在是aString
,但是,如果您此时要使用ES6功能,则必须使用一些工具来帮助您将代码从ES6转换为ES5,例如{ {3}}
此外,您可以在某些网站上了解ES6功能:babel,github-es6features