2016-01-16 36 views
0

情況:我需要將JS變量值與Twig變量值進行比較,在jQuery函數內部或者基於給定的ID號以某種方式訪問​​Twig數組中的特定對象。如何比較枝值與JS值?

描述情況的代碼:

  var id = ...; 
      {% for user in userlist %} 
      {% if user.id == id %} 
       var userInfo = $.parseJSON({{ user }}; 
      {% endif %} 
      {% endfor %} 

      $('#username-field').html(userInfo['username']); 
      ... 

或類似這樣的東西(如果它甚至有可能):

  var id = ...; 
      var userInfo = $.parseJSON({{ userlist|findByField('id', id }}; 

      $('#username-field').html(userInfo['username']); 
      $('#title-field').html(userInfo['title']); 

問題:由於樹枝也不能訪問JS值, 我不知道如何在樹枝{%...%}括號內放置某種佔位符。

從集合中訪問選擇的對象將會很好,該集合已經通過請求發送到Twig模板,而不是創建新的Ajax請求,再次從控制器獲取特定的對象。

回答

2

小枝服務器端模板引擎。不幸的是,你不能比較枝條變量和JavaScript變量。所以你應該從服務器端傳遞關鍵變量id。所以,userlistid必須是小枝變量。

{% for user in userlist %} 
{% if user.id == id %} 
    var userInfo = {{ user.username|json_encode|raw }}; // or {{ user.username|raw }} 
{% endif %} 
{% endfor %} 

$('#username-field').html(userInfo); 
+0

但問題是 - {%if user.id == id%}行,而不是進一步使用選定的對象。 – baka1408

+0

明白了。檢查更新的建議 – RomanPerekhrest