2015-04-01 112 views
1

我創建了一個樹枝模板,它將創建一個帶有複選框的項目表和一個可以使用按鈕觸發的js函數,該按鈕將返回選中複選框的所有項目的ID 。迄今爲止,這工作得很好。現在我需要調用服務並傳遞所有選定ID的數組。從樹枝呼叫Symfony按需服務

有沒有一種很好的方法可以從樹枝模板中的js部分調用服務?我不想爲服務創建控制器並使用curl來調用它。

問候基督教

+0

從JS,你不僅可以做AJAX ,所以控制器 – 2015-04-01 19:15:06

回答

4
# app/config/config.yml 
twig: 
    globals: 
     myService: "@my.service" 

而且在樹枝現在可以使用:

{{ myService.anyMethod() }} 

還可以使枝條延伸: http://symfony.com/doc/current/cookbook/templating/twig_extension.html

+0

是的我已經閱讀了關於這些擴展和服務,但我猜他們會在頁面加載時被調用。我想稍後觸發它,當用戶點擊按鈕 – user2390121 2015-04-02 16:29:54

+0

O,我起初並不明白這一點。從客戶端調用服務方法(例如js)是沒有辦法的,這就是HTTP協議的工作方式,客戶端發送請求,服務器處理它並返回響應。瀏覽器和服務器沒有保持連接。你可以通過ajax調用某些控制器動作來完成它 - 不需要捲曲。 – Greg 2015-04-02 20:14:38

+0

在我的情況下,在Symfony 3.4中,我不得不這樣聲明我的服務:'''my_service:'@AppBundle \ Service \ MyService''''。否則,我得到一個'''''ServiceNotFoundException'異常。 – Mateusz 2018-01-16 21:14:37