2014-02-27 34 views
2

參數上symfony的工作,我在深化發展下面的JavaScript函數使用bootbox:錯誤試圖使用功能

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。你知道我怎麼能把它作爲參數嗎?

回答

4

id價值是有的,但你需要引用它的值不是一個字符串

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

那好吧,謝謝;) – user2302725

+0

Oups對不起,我是太快了^^我paramater值不是ID,但字符串「+ ID +」我不認爲這解決了問題。 – user2302725

+0

'id'可能是這樣的,但是它實際上是一個服務器端表達式(一個模板方法調用),將這個值賦給'document.location.href'幾乎沒有意義。 –

0

你需要更好地瞭解發生了什麼服務器端和客戶端。你ask-delete函數被調用客戶端,從而id沒有一個值,你可以使用路由路徑的服務器端的分辨率,如:

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

是你的誤會發生。 path函數是一個模板函數,它發生在服務器端之前,id之前的方式被賦值/進入範圍。

爲了解決您需要將代碼更改爲類似這樣的問題:

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

最重要的教訓這裏瞭解客戶端 - 服務器架構,是你的web應用程序的性質(任何網絡應用程序)。

0

也許FOSJsRoutingBundle可以幫到你。

使用

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