在烧瓶函数中渲染模板之后,可以动态更改元素,即不需要重新渲染模板?在烧瓶中渲染模板之后更新Jinja元素
说我有这个烧瓶页:
@app.route("/"):
def index():
### generate div content
### have a button callback that changes the div content
return render_template('index.html', divcontent=content)
然后在模板:
{{divcontent}}
即使回调成功地改变瓶的DIV内容变量,页面不会被更新。我是否正确地说,这是因为页面首次加载时已经呈现,因此内容不会动态更新?
在上下文中;我嵌入背景虚化情节的DIV组件在模板中像这样:
script, div = components(fig, INLINE)
return render_template('index.html', script=script, div=div)
,但我也有在同一页上的下拉菜单,其如果改变,要改变的情节,因此在下拉回调我'm'通过回顾组件函数与现在新的'fig'重新生成'脚本和div,但页面不显示这些更改,我认为这是因为该页面是第一次呈现,所以新的参数脚本和div没有被更新。
我也在做一些类似的多重下拉菜单;即当在散景小部件中选择一个下拉菜单时,它将调用一个回调,该回调应该用自定义列表填充另一个下拉列表。下面是实际的回调JS代码:
dropdown2 = Select(title="Parameter:", value="Select parameter", options=['Select parameter'])
callback = CustomJS(args=dict(dropdown2=dropdown2), code="""
var selValue = cb_obj.get('value');
$.ajax({
type: "POST",
url: "retrieveColumns",
data:'id='+selValue,
success: function(data){
dropdown2.set('options',data.List);
}
});
column_select.set('options','hi');
column_select.trigger('change');
""")
dropdown1 = Select(title="Choose type:", value="Select type", options=selectList, callback=callback)
这是一个类似问题的this问题,其中OP问到如何滑块值发送回神社的一部分。 Javascript回调是'解决方案'之一,但正如我上面所说,我无法'更新'jinja元素。
我正在使用JS/ajax。问题是,即使使用JS/ajax,内容也没有得到更新。 – dter
您将不得不公开您需要的数据给api端点以访问更新的值。 – cal97g
编辑我的问题,以包括数据的实际传递到/从我的JS/AJAX – dter