在JavaScript中构建Flask网址会产生空网址

时间:2015-07-03 16:38:42

标签: javascript python flask

我有一个用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)

1 个答案:

答案 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功能:babelgithub-es6features