Pracuję nad rodzajem mini strony deski rozdzielczej, która ma bloki o określonej funkcjonalności. Używam symfony2 Mam dedykowaną trasę/instagram, który dostaje fragment html, który pokazuje wszystkie obrazy zrobione w naszym miejscu.Używanie Twig do dynamicznych plików JavaScript
Chcę odświeżyć ten blok co 10 minut, więc muszę uruchomić następujący javascript, w funkcji z setTimeout, pominięty dla jasności.
jQuery('.gallery').load("/instagram", function() {
jQuery('.gallery').cycle({
fx: 'fade'
});
});
Ten kod znajduje się "@ KunstmaanDashboardBundle/Resources/public/js/instagram.js" że biegnę przez Assetic dla konkatenacji i optymalizacji.
{% javascripts
'@KunstmaanDashboardBundle/Resources/public/js/thirdparty/jquery-1.7.min.js'
'@KunstmaanDashboardBundle/Resources/public/js/thirdparty/jquery.cycle.lite.js'
'@KunstmaanDashboardBundle/Resources/public/js/*'
filter='closure'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
To działa, ale nie czujesz się jak jest to optymalne podejście, ponieważ mam hardcode trasy w funkcji load(). Aby rozwiązać ten problem i trzeba przesunąć instagram.js treści do szablonu Twig i zmień ją na:
jQuery('.gallery').load("{{ path('KunstmaanDashboardBundle_instagram') }}", function() {
jQuery('.gallery').cycle({
fx: 'fade'
});
});
Ale w ten sposób tracę optymalizację i oddzielenie od świadczeń treści o Assetic. A nasz niestandardowy kod jest najbardziej potrzebny w tej optymalizacji.
Więc moje pytanie brzmi: w jaki sposób można połączyć Assetic Javascript (i CSS dla tej sprawy) z parsera Twig więc mogę umieścić powyższy kod w pliku instagram.js i sprawiają, że działa :)
Działa to doskonale. Dzięki! – Roderik