在一个大型应用程序中,我现在需要异步访问某些数据(json api调用)(之前,这些数据是同步访问的)。 我不想更改组件实现现在处理这种异步行为(风险太大)。
我想到了$ routeProvider的“解析”功能(带有promises),它有助于从组件/控制器中抽象出这种异步行为。
不幸的是,我绝对不会以任何方式使用路由。
是否有实施?如果没有,我可以从哪里开始?
修改
我以前是怎么回事(jsonData没有同步加载但由于systemJS功能,它是透明的,SystemJS,我们现在扔垃圾,因此问题): https://plnkr.co/edit/BSreVYNAr7sijYwEpb5G?p=preview
我现在的样子: https://plnkr.co/edit/WnX0ynOqkZsmEzIxl1SI?p=preview
观察控制台,查看现在可能出现的问题的示例。
我有点像这样工作,但我并不完全满意(观看配置块): https://plnkr.co/edit/P9Rv6rnboFlaFZ0OARNG?p=preview
$provide.value('$provide', $provide);
$routeProvider.otherwise({
template: '<test></test>',
controller: function ($provide, myJsonData1) {
$provide.value('myJsonData', myJsonData1);
},
resolve: {
myJsonData1: function(){
return getMyJsonData();
}
}
});
希望这会有所帮助:)