Как правильно работать с symfony и angularjs ?

Доброй ночи!
Решил посмотреть что за зверь такой angularjs.
Работаю на symfony2 , решил попробовать реализовать страницу на angularjs.

Интересует как правильно работать с данными в такой связке.
Варианты которые я пока вижу:

1) SymfonyController отдает в шаблон (twig) выборку из БД в виде объектов (json массива т.д.)
Далее мы как то должны отдать этот массив angular. Собственно интересует как?
ngInit? и в него что то вроде ng-init="list='{{list|json_encode|raw}}'"
Контроллеры angular в отдельном файле.

2) Выполнить $http ajax запрос к контролеру symfony, который вернет нам JsonResponse
Ну а далее уже отдать шаблону и там пусть ngRepeat разбирается.

Может есть какие то еще варианты?

P.S.
У angular сменил скобки на квадратные [[var]]
  • Вопрос задан
  • 2617 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как правильно работать с symfony и angularjs

Раздельно. В идеале Angular-based приложение в одном репозитории, Symfony-based - в другом. На сервере REST API. Смешивать приходится только в случае каких-то оптимизаций. На первых парах сомневаюсь что это ваш кейс.

У angular сменил скобки на квадратные [[var]]

Лучше просто в verbatim обернуть что бы twig не парсил. В любом случае есть масса вариантов при которых ничего экранировать вообще не нужно. Например если вам нужно по каким-то причинам какие-то данные передавать всегда, например транслейшены или чего еще, можно сделать так:

<script>
angular.module('app.data', []).constant('myMandatoryData', {{ data | json }});
</script>


а уже для приложение прописать зависимость от app.data.

Словом старайтесь не задавать в twig вообще шаблонов для angular.js. Их можно компилить, собирать в $tempalteCache (да, если у вас все будет в куче можете смело выкинуть assetic и сделать сборку на gulp/gassetic) и много чего еще.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы