Angular-ui-router+ocLazyLoad.js应用实例

AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Goole所收购。是一款优秀的前端JS框架.AngularJS有着诸多特性,最为核心的是:MVC,撗块化,自动化双向数据绑定,语义化标签,依赖注入等等。

主要说一下

   Angular-ui-router:

    $stateProvider:处理路由状态的服务,路由的状态反应了该项在应用程序中的位置,描述了在当下UI是应该怎样的,并且该做什么.

           state(name,stateConfig):注册一个状态,并绑定其配置。

   参数:

       name:状态的名称。

       stateConfig:状态配置对象

       templateUrl:模板路径的字符串,或者返回模板字符串的函数.

       controller:新注册一个控制器函数或者一个已注册的控制器的名称字符串

       resolvue:object,将会被注册入controller去执行的函数

       ocLazyLoad.js是AngularJS的按需加载器。

  1.按需加载的对象:各个Controller模块,Directive模块,Server模块,template模块,这些都是一些js和html文件.

  2.按需加载的场景

 路由加载(resolve/uiRouter)   

/*
* cofig for ui.router
*/
"use strict"
tempApp.config(["$stateProvider","$urlRouterProvider",routeFn]);
function routeFn($stateProvider,$urlRouterProvider){
$urlRouterProvider.otherwise("/default");
$stateProvider.state("default",{
  url:"/default",
  templateUrl:"views/default.html",
  controller:"defaultCtrl",
  controllerAs:"default",
  resolve:{
    deps:["$ocLazyLoad",function($ocLazyLoad){
    return $ocLazyLoad.load("js/controllers/default.js");
  }]
 } 
}).state("uibootstrap",{
  url:"/uibootstrap",
  templateUrl:"views/ui-bootstrap.html",
  resolve:{
    deps:["$ocLazyLoad",function($ocLazyLoad){
      return $ocLazyLoad.load("ui.bootstrap");
    }]
  } 
}).state("ngtable",{
  url:"/ngtable",
  templateUrl:"views/ng-table.html",
  controller:"ngTableCtrl",
  controllerAs:"ngtable",
  resolve:{
    deps:["$ocLazyLoad",function($ocLazyLoad){
      return $ocLazyLoad.load("ngTable").then(
    function(){
      return $ocLazyLoad.load("js/controllers/ng-table.js");
    });
  }]
  } 
}).state("ngtree",{
  url:"/ngtree",
  templateUrl:"views/angular-tree-control.html",
  controller:"ngTreeCtrl",
  controllerAs:"ngtree",
  resolve:{
  deps:["$ocLazyLoad",function($ocLazyLoad){
  return $ocLazyLoad.load("treeControl").then(
  function(){
    return $ocLazyLoad.load("js/controllers/angular-tree-control.js");
  });
  }]
} 
}).state("detail",{
  url:"/detail",
  templateUrl:"views/detail.html", 
  })
};

oclazyload.config配置页

   /** modules config for ocLazyLoad */"use strict"

tempApp
.constant("Modules_Config",[
{
  name:"ngTable",
  module:true,
  files:[
    "Scripts/ng-table/dist/ng-table.min.css",
    "Scripts/ng-table/dist/ng-table.min.js"
  ]
},
{
  name:"ui.bootstrap",
  module:true,
  files:[
    "Scripts/angular-bootstrap/ui-bootstrap-tpls-0.14.3.min.js"
  ]
},
{
  name:"treeControl",
  module:true,
  files:[
    "Scripts/angular-tree-control-master/css/tree-control.css",
    "Scripts/angular-tree-control-master/css/tree-control-attribute.css",
    "Scripts/angular-tree-control-master/angular-tree-control.js"
  ]
},
{
  name:"detail",
  module:true
}
])
.config(["$ocLazyLoadProvider","Modules_Config",routeFn]);
function routeFn($ocLazyLoadProvider,Modules_Config){
$ocLazyLoadProvider.config({
  debug:false,
  events:false,
  modules:Modules_Config
});
};

  

posted on 2017-06-14 18:02  (代码小工)  阅读(286)  评论(0编辑  收藏  举报