如何以角度延迟加载控制器?

时间:2018-01-09 00:12:00

标签: javascript angularjs oclazyload

在我的angularjs应用程序中,我试图延迟加载这样的控制器:

$scope.loadView4Ctrl = function () {
    console.log('loadview4ctrl');

    $ocLazyLoad.load({
        name: "View4",
        files: [
            'view4/view4.js'
        ]
    });
};

当我运行这个时,我的view4Ctrl没有加载?如何通过ocLazyLoad运行此控制器?

这是我试图加载的控制器:

'use strict';

console.log('loading file containing view4Ctrl');
app
    .config(['$routeProvider', function ($routeProvider) {
        $routeProvider.when('/view4', {
            templateUrl: 'view4/view4.html',
            controller: 'view4Ctrl'
        });
    }])
    .controller('view4Ctrl', function () {
        console.log('This is lazy loaded!!!');

        $scope.hello='Good day , I am loaded now.';

    });

以下是code

1 个答案:

答案 0 :(得分:0)

解决方案

  

在您的view4/view4.js中,将app.config更改为angular.module('myApp').config

RCA

  

view4.js延迟加载$ocLazyLoad时,app变量的上下文已更改。

我确实从GitHub克隆了您的代码以测试上述分辨率,并且效果不错:)

希望有帮助!