<code>var app = angular.module('gzmu', ["ngRoute",'chart.js']); app.run(function ($rootScope, $http) { $http({ method: 'GET', url: 'datacon/user_info.php', }).success(function (response) { $rootScope.userinfo = response[0]; console.log($rootScope.userinfo) $rootScope.$broadcast("userinfo", response[0]); }) }); app.controller('data', function ($scope, $http, $rootScope) { $scope.usernamea=''; $scope.$on("userinfo", function (event, msg) { console.log(msg); if(msg){ $scope.usernamea = msg.user; console.log($scope.usernamea) alert($scope.usernamea) } else{ alert(msg) } }); });</code>
Wie bereits erwähnt, warum wird der Code nicht jedes Mal ausgeführt, wenn die Seite geladen wird?
<code>var app = angular.module('gzmu', ["ngRoute",'chart.js']); app.run(function ($rootScope, $http) { $http({ method: 'GET', url: 'datacon/user_info.php', }).success(function (response) { $rootScope.userinfo = response[0]; console.log($rootScope.userinfo) $rootScope.$broadcast("userinfo", response[0]); }) }); app.controller('data', function ($scope, $http, $rootScope) { $scope.usernamea=''; $scope.$on("userinfo", function (event, msg) { console.log(msg); if(msg){ $scope.usernamea = msg.user; console.log($scope.usernamea) alert($scope.usernamea) } else{ alert(msg) } }); });</code>
Wie bereits erwähnt, warum wird der Code nicht jedes Mal ausgeführt, wenn die Seite geladen wird?
Der Hauptgrund ist, dass die Übertragung während der Ausführung der App tatsächlich ein asynchroner Vorgang ist. Wenn der Datencontroller während der Ausführung erfolgreich angefordert und vor der Übertragung erstellt wird, wird er erfolgreich aufgerufen, andernfalls erhält er die Informationen nicht von der Wurzel gesendet