Also ich bin immer noch auf einem Crash-Kurs mit Angular. Ich arbeite an einem ziemlich komplizierten Dashboard-Framework, alles in eckiger Form geschrieben. Bevor ich die Controller lade, muss ich zunächst eine Reihe von Dashboard-Einstellungen vom Server mit $ HTTP abrufen. Diese Einstellungen werden dann verwendet, um das Layout der Dashboards zu steuern. Also lese ich die Art und Weise eckigen Builds ist zunächst Config-Methoden, dann Methoden, dann die Controller. Ich kann nicht $ HTTP in einer Config-Methode verwenden, so dass ich dies in meinem main.js gebaut:
MetronicApp.run(['$rootScope','$http', function($rootScope,$http) {
var CUID = Cookies("CUID");
console.log('portlet settings for '+ CUID);
$http.get('/myurl/V3_portlet_settings?p_user_id='+CUID)
.then(function(response) {
console.log(response.data);
console.log('portlet status: ' + response.status);
$rootScope.$broadcast("dashSettings",response.data);
});
}]);
Wenn ich laufe, alles dies funktioniert glücklich und ich sehe die Daten in der Konsole.
Da ist in meinem Controller:
$scope.$on("dashSettings",
function(event,data){
$scope.dData = data;
console.log('dash data service identified in dash controller');
console.log($scope.dData.count);
});
paar Fragen:
Ist dies der beste Weg, die Einstellungen zu bekommen, bevor der Strich zu initialisieren. Mein Plan würde sein, die Anrufe einzubetten, die den Strich in meinem $ scope. $ Auf Block aufbauen. Ich fing an, zu schauen, wie man eine Laufmethode synchron vor der Initialisierung der Steuereinheiten ausführt, aber vielleicht muss ich nicht.
Irgendeine offensichtliche Idee, warum die Methode $ scope. $ On nicht zu feuern scheint?
Vielen Dank im Voraus
Ich denke [gelöst Abhängigkeiten] (https finden .org/api/ngRoute/provider/$ routeProvider) ist besser - wenn Sie aus einem anderen Zustand in das Dashboard zurückkehren –