尝试在函数中使用参数时出错

时间:2014-02-27 18:27:00

标签: 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}) }}";
        }
    }); 
}

我想捕获我的id参数并将其作为参数传递给我的“SomethingBundle_delete”路径。 但是似乎没有定义id。你知道我怎么把它作为论据传递出去吗?

3 个答案:

答案 0 :(得分:4)

id值可用,但您需要将其作为值引用而不是字符串文字

"{{ path('SomethingBundle_delete', {'id': " + id + "}) }}"

答案 1 :(得分:0)

您需要更好地了解服务器端和客户端发生的情况。您的ask-delete函数称为客户端,因此id没有可用于路径路径的服务器端解析的值,例如:

document.location.href = "{{ path('SomethingBundle_delete', {'id': id}) }}";

您的误解发生在哪里。 path函数是一个模板函数,它发生在服务器端之前,在id被分配值/进入范围之前。

要解决此问题,您需要将代码更改为以下内容:

document.location.href = "/route/path/for/your/" + id;

这里最重要的一课是了解客户端 - 服务器架构的本质,即您的Web应用程序(以及任何网络应用程序)。

答案 2 :(得分:0)

也许FOSJsRoutingBundle可以帮到你。

使用

Routing.generate('your_route',{id:id});