首页 > 解决方案 > angularjs - 在没有路由/ng-view 的情况下实现路由的解析功能

问题描述

在一个大型应用程序中,我现在需要异步访问一些数据(json api 调用)(之前,这些数据是同步访问的)。我不希望现在必须更改组件实现来处理这种异步行为(风险太大)。

我想到了 $routeProvider 的“解决”功能(带有承诺),它有助于将这种异步行为从组件/控制器中抽象出来。

不幸的是,我绝对没有以任何方式使用路由。

有没有实现呢?如果没有,我可以从哪里开始?

编辑:

我以前是怎样的(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();
                }
            } 
        });

希望这可以帮助 :)

标签: angularjsasynchronouspromiseresolve

解决方案


推荐阅读