Ein gängiges Szenario, mit dem viele andere Entwickler konfrontiert sind - wir haben eine ausgereifte Anwendung basierend auf Symfony2/TWIG, und einige der html.twig-Vorlagen wurden zu sehr mit jQuery-Code und schwer zu pflegen. Was ist mit jQuery wegwerfen und Angular verwenden? Vorausgesetzt, ich habe ein Grundwissen über Winkelmodule, Controller, Dienste und Umfang und ein tiefes Wissen über Symfony2/TWIG, ist mein erstes Problem - was ist der beste Weg, um Variablen aus meinen vorhandenen Controller/Zweig-Vorlagen an Winkelsteuerungen zu übergeben ?Die beste Methode, um Variablen von Symfony2 an den Angular-Bereich zu übergeben
Ich möchte Scope nicht durch separaten JSON-Aufruf und einen separaten Controller in Symfony2 laden. Ich möchte nur die vorhandenen Variablen verwenden, die ich im Zweig habe.
Eine Möglichkeit, einige globale js Variablen zu tun ist, zu erklären:
<script>
var window.someVar = {{ twig_object | json_encode() }};
</script>
ein dann wie
<div ng-controller="myCtrl" ng-init="init()">
<div ng-model="someVar"> .... </div>
</div>
und Controller für
app.controller('myCtrl', ['$scope', function($scope) {
$scope.init = function() {
if (window['someVar']) {
$scope['someVar'] = window['someVar'];
}
};
Aber das scheint zu hässlich smth tun Ich (3 Schritte) Darf es zumindest vereinfacht oder anders gemacht werden?
Meine eigene Erfahrung ist, dass Sie ständig sein werden kämpft AngularJS. Für mich war es einfacher, einen _format = json Parameter zu meinen Routen hinzuzufügen und dann einfach json vom Controller zurückzugeben. Halten Sie AngularJS glücklich und aus dem Bild. Außerdem müssen Sie nicht mit dem ganzen geschweiften Klammerproblem fertig werden. – Cerad
@Cerad Ich bin sehr neugierig auf das Thema geschweifte Klammer. In MVC (die ich verwende) führen wir serverseitige Variablen mit einem at * @ * -Symbol ein, aber Sie verwenden die gleiche Syntaxclientseite hier (für die Interpolation), wie Sie serverseitig (für Variablen, die vom Server übergeben werden)! Probleme treten nicht von Zeit zu Zeit auf, oder ist es in Ordnung, weil der Server den Code zuerst sieht? – JMK
@JMK - Ich verstehe deine Frage nicht. Ich vermeide das lockige Problem, indem ich twig- und angularjs-Vorlagen in separaten Dateien aufbewahre. Die Angularjs werden direkt ohne S2 angeboten. – Cerad