使用OC延迟加载时未定义控制器

时间:2016-03-14 16:05:15

标签: javascript angularjs angular-ui-router oclazyload

我正在尝试使用oclazyload模块延迟加载我的JS文件。 但是我收到了这个错误

未捕获的ReferenceError:未定义dashboardController

正确加载我的文件。 这是州宣言

.state(
    "dashboard",
    {
        url : "/dashboard",
        views : {

             "mainbody" : {
                 templateUrl : "dashboard/dashboard.html"
             },
         },
         resolve : {
             load : [
                 '$ocLazyLoad',
                 function($ocLazyLoad) {
                     return $ocLazyLoad
                         .load({
                             name : 'Dashboard',
                             files : [
                                'dashboard/Dashboard.js',
                                'dashboard/controllers/DashboardController.js' 
                             ]
                        });
                } 
            ]
        },
        data : {
            pageTitle : "dashboard",
            authenticate : true
        }
    })

我的模块声明如下:

angular.module('Dashboard', [ 'nvd3', 'ngAnimate', 'ui.bootstrap', 'ngTouch', 'ui.grid' ]).controller('dashboardController', dashboardController);

和控制器

function dashboardController ($scope , uiGridConstants, $http,  $timeout) {//some staff}

任何想法如何解决?

2 个答案:

答案 0 :(得分:0)

尝试将解析块放在视图块下

.state(
    "dashboard", {
    url : "/dashboard",
    views : {
        "mainbody" : {
            templateUrl : "dashboard/dashboard.html",
            resolve : {
                load : [
                    '$ocLazyLoad',
                    function ($ocLazyLoad) {
                        return $ocLazyLoad
                        .load({
                            name : 'Dashboard',
                            files : [
                                'dashboard/Dashboard.js',
                                'dashboard/controllers/DashboardController.js']
                        });
                    }
                ]
            },
            data : {
                pageTitle : "dashboard",
                authenticate : true
            }
        },
    }
})

答案 1 :(得分:0)

请试一试。

 return $ocLazyLoad
 .load([
      'dashboard/Dashboard.js',
      'dashboard/controllers/DashboardController.js' 
 ]);