我一直在寻找这个问题的答案,但对于如何解决这个问题并没有任何明确或明确的答案。
在我的 anguarJS 应用程序中,我想确保在加载/引导 AngularJS 之后的第一件事,它通过访问服务器$http
并获取一些设置(通过称为 api: /api/settings/get
) - 取决于子域和/或是否存在是 JWT 或其他用户会话,它将检索一些应添加到$rootScope
.
我的问题是我无法“停止”应用程序,只有当且仅当设置已获取并填充$rootScope
. 如果 fetch 或 settings 调用可能失败,应用程序应该“停止” - 所以这些设置很早就加载是至关重要的,所以我知道一切(服务、控制器、指令等)都可以访问它们。
我已经尝试使用$broadcast
事件并将其放入我的.run
函数中,但它似乎仍然可以解决应用程序(可能很明显是因为它是异步的)。
apiConnector.get('api/settings/get').then(function(settings) {
$rootScope.settings = settings;
$rootScope.$broadcast('settings-fetched');
});
但是,我不喜欢这种方法,并且要求我在任何地方都听这个事件。
我的路线是公开的和受限制的。
我希望有人能在正确的方向上帮助我解决这个问题。