在我的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

最佳答案

解析度


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


RCA


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


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

希望能帮助到你!

10-06 00:15