AngularJS 动态加载控制器实例-ocLoazLazy(二)

一、AngularJS动态加载控制器和视图实例

路由配置关键代码:

//二级页面
$stateProvider.state('main', {
    url: '/:name',
    /**如果需要动态加载数据和控制器***/
    views: {
        "": {
            templateUrl: function ($stateParams) {
                console.info($stateParams);
                return '/template/' + $stateParams.name + '.html';
            },
            resolve: {
                des: function ($ocLazyLoad, $stateParams) {
                    if ($stateParams.name == 'about')
                        return;
                    return $ocLazyLoad.load('/scripts/myjs/' + $stateParams.name + '.js');
                }
            }
        }
    }
});

1.引用:

<script src="../Scripts/jquery-1.10.2.min.js"></script>
<script src="../Scripts/Angular/angular.min.js"></script>
<script src="../Scripts/Angular/ocLazyLoad.min.js"></script>
<script src="../Scripts/Angular/angular-ui-router.min.js"></script>
<link href="../Content/bootstrap.min.css" rel="stylesheet" />
2.HTML

<div class="container" ng-app="myApp">
    <ul class="nav nav-pills">
        <li role="presentation"><a href="#/home">首页</a></li>
        <li role="presentation"><a href="#/about">关于页面</a></li>
    </ul>
    <div class="panel panel-danger">
        <div class="panel-heading">
            <div class="panel-title">模板内容</div>
        </div>
        <div class="panel-body" ui-view></div>
    </div>
</div>
3.Js

var app = angular.module('myApp', ['oc.lazyLoad', 'ui.router']);
//配置路由
app.config(function ($stateProvider, $urlRouterProvider) {
    $urlRouterProvider
        .when('', '/');
    //首页
    $stateProvider.state('index', {
        url: '/',
        templateProvider: function ($stateParams) {
            console.info('这是首页');
            return '<h1>这是首页</h1>';
        }
    });
    //二级页面
    $stateProvider.state('main', {
        url: '/:name',
        /***如果只是动态加载视图**/
        //templateUrl: function ($stateParams) {
        //    console.info($stateParams);
        //    return '/template/' + $stateParams.name + '.html';
        //},
        //controller: 'homeController',
        /**如果需要动态加载数据和控制器***/
        views: {
            "": {
                templateUrl: function ($stateParams) {
                    console.info($stateParams);
                    return '/template/' + $stateParams.name + '.html';
                },
                resolve: {
                    des: function ($ocLazyLoad, $stateParams) {
                        if ($stateParams.name == 'about')
                            return;
                        return $ocLazyLoad.load('/scripts/myjs/' + $stateParams.name + '.js');
                    }
                }
            }
        }
    });
});


更多:

AngularJS ocLazyLoad按需加载控制器/js文件的延迟加载(一)

AngularJS路由之ui-router(一)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值