Jako typowy scenariusz, z którym boryka się wielu innych deweloperów - mamy dojrzałą aplikację opartą na Symfony2/TWIG, a niektóre szablony html.twig zostały zbyt mocno przeładowane kodem jQuery i trudne do utrzymania. Co powiesz na wyrzucenie jQuery i użycie Angular? Pod warunkiem, że posiadam podstawową wiedzę na temat modułów kątowych, kontrolerów, usług i zakresu oraz głębokiej znajomości Symfony2/TWIG, moim problemem jest - jaki jest najlepszy sposób przekazywania zmiennych z moich istniejących szablonów kontrolerów/gałązek do regulatorów kątowych ?Najlepszy sposób przekazywania zmiennych z Symfony2 do zakresu Angular
Nie chcę ładować zakresu przez osobne wywołanie JSON i osobny kontroler w Symfony2. Po prostu chcę użyć istniejących zmiennych, które mam w gałązce.
Jednym ze sposobów jest zadeklarować kilka globalnych js zmienne:
<script>
var window.someVar = {{ twig_object | json_encode() }};
</script>
wtedy coś zrobić jak
<div ng-controller="myCtrl" ng-init="init()">
<div ng-model="someVar"> .... </div>
</div>
i kontroler
app.controller('myCtrl', ['$scope', function($scope) {
$scope.init = function() {
if (window['someVar']) {
$scope['someVar'] = window['someVar'];
}
};
Ale to wydaje się zbyt brzydki dla ja (3 kroki) Czy można to przynajmniej uprościć lub zrobić inaczej?
My własne doświadczenie jest takie, że będziesz consta ntly walczą z AngularJS. Dla mnie łatwiej było dodać parametr _format = json do moich tras, a następnie po prostu zwrócić json z kontrolera. Utrzymaj AngularJS szczęśliwego i gałązka z obrazu. Poza tym nie będziesz musiał zajmować się całym problemem nawiasów klamrowych. – Cerad
@Cerad Jestem bardzo ciekawy problemu z nawiasami klamrowymi. W MVC (którego używam) wprowadzamy zmienne po stronie serwera z symbolem at * @ *, ale używamy tutaj tej samej strony klienckiej składni (do interpolacji), co po stronie serwera (dla zmiennych przekazywanych z serwera)! Czy od czasu do czasu nie pojawiają się problemy, czy też jest to w porządku, ponieważ serwer najpierw widzi kod? – JMK
@JMK - Nie rozumiem twojego pytania. Unikam krętego problemu, zachowując szablony twig i angularjs w osobnych plikach. Angularjs są podawane bezpośrednio bez przechodzenia przez S2. – Cerad