大家好,祝大家新年快乐!
我有一个实际问题: 在我的GUI上,我要求用户在单击“另存为新按钮”时使用提示方法指定新文档名称
$("#btnSaveNew").on( "click", function() {
var newScenarioName = prompt("Please enter new scenario name", "scenarioX");
$.ajax({
url : 'http://' + document.domain + ':' + location.port + "/saveAsNew",
type : 'POST',
data : JSON.stringify({'data':data,'newName': newScenarioName}),
contentType: 'application/json;charset=UTF-8',
success: function (result) {
loadScenario();
},
});
我的python-flask部分要求cloudant DB发送与指定名称匹配的文件ID,如果名称不存在,则根据metaData内容创建doc但如果存在,我没有解决方法来警告用户
newScenarioName = request.json["newName"]
file_id = getscenario(newScenarioName)
my_doc = my_db[file_id]
metaData = {
'name': newScenarioName,
'scenario': data
}
my_doc = my_db.create_document(metaData)
所以我想实现类似的东西
newScenarioName = request.json["newName"]
file_id = getscenario(newScenarioName)
my_doc = my_db[file_id]
if my_doc['name'].exist():
scenario_exist = True
******************
** missing part **
******************
else:
metaData = {
'name': newScenarioName,
'scenario': data
}
my_doc = my_db.create_document(metaData)
其中**缺失部分**包含对.js部分的发送指令,该指令修改了我可以添加的var,因此我可以创建一个条件,例如
var newScenarioName = prompt("Please enter new scenario name", "scenarioX");
if (newScenarioName === null || scenario_exist === True) {
newScenarioName = prompt("Please enter new scenario name, previous one was null or already used", "scenarioX");
}
并中止新的方案创建!
我看到了一个可能的解决方案:How to pass variable from python to javascript进行jQuery调用,但问题是,我没有对HTML / web-js部分进行编码,所以我有点迷失在jQuery的可能性中(并且非常技术性的,而非网络菜鸟友好的手册)
所以在python方面有一种方法可以创建一个像request.json ['key']这样的方法,但这是另一种方式(post.json ['key']?:p) 或者可以使用jQuery / Ajax方法调用值.js一边?
感谢您的耐心和阅读此问题并抱歉语法错误
编辑:我认为这样做的唯一方法是使用websockets,使用Jinja的模板在技术上对我来说似乎有点太多了,它更像是一个旁路而不是一个解决方案答案 0 :(得分:0)
好的我只是通过重新定义我的ajax方法来绕过我的问题,它在出错时回调函数
(component.class.name)!'unknown' == 'com.example.Something'