【发布时间】:2015-07-31 10:59:24
【问题描述】:
我有一个用于产品目录的相当简单的 Angular 应用程序,它从 CMS 中提取一个大的 JSON 文件。 JSON 包含应用程序的多个部分(菜单、分页、产品列表、产品详细信息)所需的信息,因此需要多个控制器访问它。
我这样做的方式是定义
$rootScope.$on('$stateChangeStart',
function(evt, toState, toParams, fromState, fromParams){
loader.getData(toParams);
});
在app.run();。 loader 工厂然后 $broadcasts 将数据发送到所有控制器。这工作正常,但应用程序在每次状态更改时都会“闪烁”,因为 UI-Router 在等待异步数据时启动控制器/加载没有数据的模板。
我想这样做的正确方法是在$stateProvider.state() 中使用resolve,但我不知道如何将我的加载程序注入配置或使我的数据可用于所有其他控制器。
有没有办法让 resolve 等待广播?还是有其他方法?
这是我的第一个 Angular 项目,如果这很容易/明显或愚蠢,请原谅。
谢谢!
【问题讨论】:
标签: json angularjs asynchronous angular-ui-router