Injecter directement des valeurs du serveur dans le scope d'AngularJS peut s’avérer compliqué.
J'ai mis en place une solution la moins horrible possible :
Dans le template (en jsp, scala, .NET, php, ...) :
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.
Aucun commentaire:
Enregistrer un commentaire