【发布时间】:2015-07-23 14:03:11
【问题描述】:
我有一个内置 angularJS 的产品,我已经创建了近 300 个控制器。所有控制器都有一个 XHR 调用(不是 $http 调用,它是基本的 javascript XMLHttpRequest )用于检查会话数据(通过在控制器开头调用服务)。在开始时我以同步方式创建它时犯了一个错误(在服务中定义了同步调用),现在它在 mozilla firefox 中已弃用,很快将在 chrome 中弃用。是否有另一种方法可以在不将所有控制器更改为 $watch 的情况下进行同步 XHR 调用?
var request = new XMLHttpRequest();
request.open('POST', 'path/to/my/APIservice', false);
感谢您的帮助。
【问题讨论】:
-
您是否有理由希望调用是同步的?不推荐使用它们的原因是它们会阻止 UI,这会导致糟糕的用户体验。我建议弄清楚如何使它们异步(微不足道,但一个单独的问题)。
-
首先感谢您的关注,实际上控制器中的所有代码都应该在从 API 获取会话数据后运行,所以我必须让控制器等到它回到我的 $根范围