Ich habe eine App, die Echtzeitereignisse auslöst. Und wenn eines dieser Ereignisse eintritt, ändern wir ein Modell in $ rootScope mit dem folgenden Code:AngularJS Problem mit ng-show und rootScope
setTimeout(function(){$rootScope.controlsVisible = true}, 1500);
Dies funktioniert, wenn der Benutzer bereits in der Registerkarte ist und mit Hilfe der App. Wenn der Benutzer jedoch eine andere App oder sogar eine andere Registerkarte verwendet, aktualisiert dieser Code das Modell (ich habe versucht, einige console.logs hinzuzufügen), aber das div wird nicht angezeigt (es entfernt nicht die ng-hide Klasse).
Die einzige Möglichkeit dafür zu funktionieren ist, wenn ich irgendwo auf die App klicke. Ich habe etwas recherchiert und festgestellt, dass das Problem auf dem setTimeout liegt, wenn der Tab nicht fokussiert ist. Wie bereits erwähnt, wird jedoch die console.log ausgeführt und das Modell wird aktualisiert. Das ist ein merkwürdiges Verhalten, das ich nicht herausfinden kann.
Versuchen Sie Angle $ Timeout. –