2013-04-17 77 views
2

我開始在Symfony2中使用HTML樹枝和我得到了以下問題:解析變量枝杈

function goEditConflict(){ 
    $("#go").on("click", function(){ 
    id = $("#case_number").val(); 

    windows.location = {{ path("acf_case_conflict_edit", {"id" : id}) }} ; 
    }); 
} 

變量 「ID」 不 ACFCaseBundle存在:共享:caseHierachy.js。小枝在38行

我嘗試重定向id變量頁面的基礎,但我得到了,當我嘗試重定向到{{ path("acf_case_conflict_edit", {"id" : id}) }}的變量不存在錯誤。

如何我在樹枝代碼中使用js的變量?

+1

此錯誤是關於名爲'id'樹枝變量。請檢查這些變量是否傳遞給您嘗試使用它的樹枝模板。 – gatisl

+3

你想在樹枝模板函數中使用javascript變量嗎? –

+0

該軟件包可以幫助你生成JS代碼https://github.com/FriendsOfSymfony/FOSJsRoutingBundle – gatisl

回答

3

你的樹枝將你的JavaScript運行之前被寫入,因此,它無法解析從jQuery呼叫ID。在這種情況下,你是關閉使用JavaScript的ID添加到虛擬路由好:

acf_case_conflict.yml:

acf_case_conflict_stub: 
    pattern:/
    defaults: { _controller: "Bundle:acf_case_conflict:edit" } 

突然意識到了JS:

function goEditConflict(){ 
    $("#go").on("click", function(){ 
    id = $("#case_number").val(); 
    windows.location = {{ path("acf_case_conflict_stub")}}+"/"+id+"/edit"; 
    }); 
} 

這將寫入新js文件在每次渲染頁面時都擁有新的位置。

+0

要麼比我的回答更好。 – Lighthart

0

我做了以下內容:

function goEditConflict(){ 
    $("#go").on("click", function(){ 
    id = $("#case_number").val(); 
    {% set var %} 
      id 
    {% endset %} 
    windows.location = {{ path("acf_case_conflict_edit", {"id" : var}) }} ; 
    }); 
} 
+1

這裏如果你店鋪標識爲變種,它店鋪ID爲變量var不是id變量的值。 –

3

使用此代碼

function goEditConflict(){ 
$("#go").on("click", function(){ 
    var url = "{{ path("acf_case_conflict_edit", {"id" : js_id}) }}"; 

    js_id = $("#case_number").val(); 
    url = url.replace("id", js_id); 
    windows.location = url ; 
}); 
} 
+0

不錯的工作 – ling