Injecter directement des valeurs du serveur dans le scope d'AngularJS peut s’avérer compliqué.
Dans votre application AngularJS, déclarer la fonction init dans votre controlleur !
Vous pouvez passer du JSON, mais prenez garde à éviter d'avoir dans votre JSON la séquence suivante '}}', il faudra la remplacer par '} }' avec un espace pour éviter qu'Angular considère cela comme la balsie fermante.
J'ai mis en place une solution la moins horrible possible :
Dans le template (en jsp, scala, .NET, php, ...) :
<div ng-controller="mainCtrl">
... // le code HTML de votre application
<span>{{ init(<%=myValue%>) }}</span>
</div>
Dans votre application AngularJS, déclarer la fonction init dans votre controlleur !
angular.module.controller('mainCtrl', ['$scope', function () { return function ($scope, restSiret) { $scope.isPageValueLoaded = false; $scope.init = function (value) { if (!$scope.isPageValueLoaded) { $scope.isPageValueLoaded = true; $scope.pageData = value; } } } ]);
Vous pouvez passer du JSON, mais prenez garde à éviter d'avoir dans votre JSON la séquence suivante '}}', il faudra la remplacer par '} }' avec un espace pour éviter qu'Angular considère cela comme la balsie fermante.