在JavaScript中使用Pylons全局变量(转义括号)

2024-05-06 10:07:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图访问JavaScript中Python全局变量保存的字典中的结果。在

var selected = jQuery('.target option:selected').text()
var list = "${c.persons_by_permission["+selected+"]}"

如果不使用变量直接访问字典:

^{pr2}$

那么代码就起作用了。在

但是,当我试图使用变量来访问字典时,我得到了一个语法错误(我相信是因为大括号)。在

我试着用以下方法来摆脱牙套:

var list = "${{c.persons_by_permission["+selected+"]}}"

但有更多的例外。在

有什么想法吗?在

编辑:

这不是我是否可以同时使用Python和javascript的问题,更重要的是要避开大括号

我正在使用塔架,所以如果我尝试:

alert("${c.persons_by_permission['Documents']}")

我会得到我需要的结果。问题是我找不到一种方法来将变量传递到javascript中来代替“Documents”


Tags: 方法targetby字典var大括号javascriptjquery
2条回答

我不知道您使用的是什么执行环境,但我几乎可以肯定python和javascript不会同时执行。在

${c.persons_by_permission['stringID']}在我看来像某种模板指令。如果是这样,这是因为指令是在模板处理时处理的。另一种形式只是javascript中的一个表达式,在javascript中计算为字符串。在

我在这里做一些(合理的)假设

  • 您的Python正在web服务器上运行
  • 您的JavaScript正在客户端上运行

就Python而言,它正在输出文本。它不在乎浏览器可能会将其解释为HTML、JavaScript或其他任何东西。它只是生成一些文本,然后发送到浏览器。在

你必须用一个HTTP请求和一个响应。不能中途停止响应以从客户端获取数据。在

不能将数据从客户端JS传递回生成JS的Python进程。该进程将结束运行。在

您可以:

  • 首先将所有数据发送到客户端(然后在JS中而不是Python中选择所需的位)
  • 让JavaScript向服务器发出一个新的HTTP请求,并在JS中处理响应(这称为Ajax,其中不乏相关教程)

相关问题 更多 >