ich ein Problem habe, wo $ rootScope $ Broadcast-Ereignisse werden nicht gefeuert zu werden.
App.run(function($rootScope){
var text = 'Not So Static Now';
$rootScope.$broadcast('event:staticText', text);
}).$inject = ['$rootScope'];
App.controller('Ctrl1', function($scope, $rootScope) {
$scope.staticText = "Static Text";
var things = [
'AngularJS',
'StackOverflow',
'JSFiddle'
];
$scope.$emit('event:things', things);
$scope.$on('event:staticText', function(e, args){
$scope.staticText = args;
});
}).$inject = ['$scope', '$rootScope'];
Die oben sollte die ändern {{StaticText-}} Ausgabe auf ‚Not So Static Now 'aber es tut es nicht.
ich ein JSFiddle erstellt habe, das Problem http://jsfiddle.net/flavrjosh/uXzTV/
Dies ist Teil eines größeren Problems Ich versuche, debug zu zeigen, wo IE9 die Ereignisse nicht feuert, nachdem die Seite (funktioniert erstes Mal aktualisiert wird, aber beim Refresh - F5 oder die Refresh-Taste passiert nichts.
Jede Hilfe/Beratung würde
Frage nur, warum willst du das tun? – maxisam
Grundsätzlich enthält App.run() eine Logik, die überprüft, ob ein Benutzer angemeldet ist. Er löst ein Ereignis aus, nachdem das Service-Versprechen-Objekt die Benutzerinformationen zur Überprüfung der Anmeldung zurückgegeben hat. Andere Controller können das vom Login verifizierte Ereignis anhören und auf dieses reagieren. –
Warum haben Sie keinen Dienst, um dies zu überprüfen und diesen Dienst in jedem von Ihnen gewünschten Controller anzurufen? Beide Wege müssen trotzdem etwas Code in den Controllern hinzufügen. – maxisam