首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用OcLazyLoad解决控制器加载前的资源调用

用OcLazyLoad解决控制器加载前的资源调用
EN

Stack Overflow用户
提问于 2015-09-19 10:54:33
回答 1查看 1.6K关注 0票数 1

我需要使用$resource提供者对我的need服务执行http调用。我首先解析来自http调用的数据,然后将这个结果注入控制器中。考虑到OcLazyLoad,我刚刚编写了这段代码。在我看来,它应该:

  • 第一负荷服务;
  • 进行http呼叫;
  • 当承诺被解决后,加载控制器 .state(‘app.user.customer..state’),{ url:'/{id}',templateUrl:“资产/视图/CustomerDetail.html”,解析:{ loadMyService:['$ocLazyLoad','$injector',函数($ocLazyLoad,{返回$ocLazyLoad.load('assets/js/services/customer.js').then(函数(){返回$ocLazyLoad.load('assets/js/services/customerFirstService.js').then(function() { var $serviceTest = $injector.get("CustomerFirstLoad");(函数(){ $ocLazyLoad.load('assets/js/controllers/customerCtrl.js');});}

这是我们的服务

代码语言:javascript
复制
'use strict';

app.factory('CustomerFirstLoad', ['$q', '$timeout', function Customers($q, $timeout) {
    var svc = {};

    svc.testLoad = function(){
        var deferrer = $q.defer(); 

        $timeout(function(){
            console.log("response");
            deferrer.resolve("response");
        }, 3000);
      return deferrer.promise;
  };

return svc;
}]);

一些建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 07:44:01

尝尝这个

代码语言:javascript
复制
.state('app.user.customer.detail', {
url: '/{id}',
templateUrl: "assets/views/customerDetail.html",
resolve: { loadMyService: ['$ocLazyLoad', '$injector', 
                function($ocLazyLoad, $injector) {
        return $ocLazyLoad.load('assets/js/services/customer.js').then(
                    function() {                            
                        return $ocLazyLoad.load('assets/js/services/customerFirstService.js').then(function() {

                            var $serviceTest = $injector.get("CustomerFirstLoad");
                            return $serviceTest.testLoad(); // <-- CHANGED HERE

                            }).then(function(){
                                        return $ocLazyLoad.load(['assets/js/controllers/customerCtrl.js']);
                              });
                        });

                 }]}

您需要以这样的方式返回$serviceTest.testLoad()的承诺,$ocLazyLoad$serviceTest.testLoad()完成之前不会继续。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32667341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档