Javascript 尝试在函数中使用参数时出错
在symfony上,我正在使用bootbox开发以下javascript函数:Javascript 尝试在函数中使用参数时出错,javascript,symfony,routes,Javascript,Symfony,Routes,在symfony上,我正在使用bootbox开发以下javascript函数: function ask_delete(id) { bootbox.confirm("Are you sure?", function(result) { if(result) { document.location.href = "{{ path('SomethingBundle_delete', {'id': id}) }}"; }
function ask_delete(id)
{
bootbox.confirm("Are you sure?", function(result) {
if(result)
{
document.location.href = "{{ path('SomethingBundle_delete', {'id': id}) }}";
}
});
}
我想捕获我的id参数,并将其作为参数传递给我的“SomethingBundle\u delete”路由。
但是,似乎没有定义id。您知道如何将其作为参数传递吗?id值可用,但您需要将其作为值引用,而不是作为字符串文本引用
"{{ path('SomethingBundle_delete', {'id': " + id + "}) }}"
id
值可用,但您需要将其作为值而不是字符串文本引用
"{{ path('SomethingBundle_delete', {'id': " + id + "}) }}"
您需要更好地了解服务器端和客户端发生了什么。您的
ask delete
函数称为客户端,因此id
没有可用于路由路径服务器端解析的值,例如:
document.location.href = "{{ path('SomethingBundle_delete', {'id': id}) }}";
是你误解的地方。path
函数是一个模板函数,在id
被赋值/进入作用域之前,它在服务器端发生
要解决此问题,您需要将代码更改为以下内容:
document.location.href = "/route/path/for/your/" + id;
这里最重要的一课是理解作为web应用程序(以及任何web应用程序)的客户机-服务器体系结构的本质。您需要更好地了解服务器端和客户端发生了什么。您的
ask delete
函数称为客户端,因此id
没有可用于路由路径服务器端解析的值,例如:
document.location.href = "{{ path('SomethingBundle_delete', {'id': id}) }}";
是你误解的地方。path
函数是一个模板函数,在id
被赋值/进入作用域之前,它在服务器端发生
要解决此问题,您需要将代码更改为以下内容:
document.location.href = "/route/path/for/your/" + id;
这里最重要的一课是了解客户机-服务器体系结构的本质,它是您的web应用程序(以及与此相关的任何web应用程序)。可能会对您有所帮助
使用
也许我能帮你
使用
对不起,我太快了^^我的参数值不是id,而是字符串“+id+”,我认为它解决不了问题。
id
可能是这样的,但将该值指定给document.location.href
,实际上它是一个服务器端表达式(模板方法调用),几乎毫无意义.Oups对不起,我太快了^^我的参数值不是id,而是字符串“+id+”,我认为它解决不了问题。id
可能是这样的,但将该值指定给document.location.href
,实际上它是一个服务器端表达式(模板方法调用),几乎没有意义。