Sto lavorando con Angular JS e Yii2. In uno dei miei controller PHP ho bisogno di passare un array di dati dal backend al front-end, quindi sto codificando json il mio array php e impostando una var nella vista in questo modo:
$script = "var projects = "".json_encode($projects)."";";
$this->view->registerJs($script, View::POS_END);
Quindi nel mio controller Angular ottengo i dati JSON in questo modo:
app.controller("ProjectsController", ["$scope", function($scope, args){
$scope.projects;
$scope.init = function(){
$scope.projects = angular.fromJson(projects);
};
$scope.init();
}]);
La mia domanda è: questa è una buona forma? Esiste un modo giusto / sbagliato per elaborare dati come questo al caricamento della pagina con Angular?
Saluti
Cenere
risposte:
1 per risposta № 1Penso che tu debba fare qualcosa del genere
app.controller("ProjectsController", ["$scope", "$window", function($scope, $window){
$scope.projects = angular.fromJson($window.projects);
Oppure usa il tuo metodo della funzione init se vuoi, la parte importante è usare il servizio $ window.