angularJS 路由加载js controller 未定义 解决方案

帅比萌擦擦* 提交于 2020-02-29 01:26:08

说明

本文主要说明,在angularJS框架使用中,angularJS 路由加载js controller 未定义 解决方案。

路由 $routeProvider 异步加载js

路由的基本用法,请查看官方文档,下面实例只说明,懒加载用法。

实例使用版本:

angularJS:1.7.6

ocLazyLoad:1.1.0

片段说明

通过路由懒加载js,需要引用第三方ocLazyLoad库加载,并且修改被加载脚本代码,防止控制器出现未定义现象。

定义 ocLazyLoad 库

angular.module("app_name", ['ngRoute','ngSanitize','oc.lazyLoad'])

路由设置

angular.config(['$routeProvider', function($routeProvider){
    $routeProvider
    	// 路由示例图
        .when('/',{
        	// 模版地址
            templateUrl:'/PC/Public/Template/CustomerData.php',
        	// 控制器名字
            controller:'controller_name',
        	// 依赖请求
            resolve: {
                // 调用 ocLazyLoad
                deps: ['$ocLazyLoad',function (e) {
                    return e.load(['/PC/Public/Template/L/L0/CustomerModel/CustomerData.js']);
                }]
            }
        })
        .otherwise({redirectTo:'/'});
}]);

被加载js代码

// 添加指定 app 名称,防止出现未定义控制器
angular.module("app_name").controller("controller_name", ["$scope", function ($scope) {

    console.log("$scope");

}]);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!