AngularJS实际项目应用——程序入口启动
发布时间:2020-12-17 09:37:42 所属栏目:安全 来源:网络整理
导读:一步一步看程序怎么启动的,angularjs是单页应用,基本就一个页面,页面主要结构如下: div class="body-wrap" !-- body-- div class="content-wrap" ui-view /div/div 页面最下面引入requirejs script data-main="static/js/config-product" src="static/js
一步一步看程序怎么启动的,angularjs是单页应用,基本就一个页面,页面主要结构如下: <div class="body-wrap"> <!-- body--> <div class="content-wrap" ui-view> </div> </div>
<script data-main="static/js/config-product" src="static/js/libs/require.js"></script> 真正的程序启动点在config-product.js里 (function(window){ var appPath=window.contextPath+ '/static/js/'+(window.isMobile?'app_m':'app')+'/'; var globalConfig = { apiUrl : window.contextPath + "/v1/",......//配置一些全局路径,方便引用 }; window.globalConfig = window.globalConfig || globalConfig; })(window); requirejs.config({ baseUrl: window.globalConfig.appPath,paths:{ 'modules': globalConfig.modulesPath,'jquery':globalConfig.libPath+'jquery','angular':globalConfig.libPath+'angular',...... },shim:{ 'jquery':{ exports:'$' },'angularAMD':{ deps:["angular"],exports:"angular" },'angular':{ deps: ['jquery'],exports: 'angular' },...... }) require(['app','angularAMD'],function(app,angularAMD) { angularAMD.bootstrap(app); });//程序启动入口 接着看app.js define([ 'angular','angularAMD','layout/app-layout.module',...... ],function (ng,angularAMD) { 'use strict'; require(["angularCN"]); return angular.module('app',[ ...... 'app.layout','app.interceptors' ]).config(['$httpProvider',function($httpProvider) { //config global interceptors $httpProvider.interceptors.push('failureMsgInterceptor'); }])app.js里定义一个app module,引入依赖,做一些配置,上面的代码中省略了好多依赖和配置。 其中最重要的是app-layout.module,因为在这个里面配置了程序的默认路由,所以这个模块需要直接引入进来,加到app的依赖中去,接着看看app-layout.module.js怎么写的,其实和上面几篇文章介绍的.module文件没啥不同 define(["require","angular",'utils/routerHelper',"layout/layout.routes","angular-bootstrap","angular-cookie"],function(require,ng,routerHelper,routerCfg) { var module = ng.module('app.layout',["ui.bootstrap","ngCookies"]); routerHelper.call(module,routerCfg); return module; }); 主要作用就是配置路由,这个路由文件告诉ui-router怎么去呈现默认的ui-view define([],function() { var basePath={ layout:cmpConfig.appPath+'layout/' }; return { routers: { 'app':{ url: "",abstract:true,dependencies: [ basePath.layout+'layout.controller.js' ],views:{ '@':{ templateUrl: basePath.layout+'layout.html',controller:'LayoutCtrl' } } },} } }); 到这里,ui-view就会呈现layout.html里面的东西了,layout.html里面会对整个页面进行布局,比如是上下结构还是左右结构,然后里面会留出一个内容区域,通过点击不同的菜单,在这个内容区域实现切换页面 <div ui-view="content" class="taget-content-wrap animated " ng-style="contentLeft"></div>在结合上篇文章讲的详细路由过程,应该能明白程序是怎么跑起来的了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 如何计算一个页面上的watch总数?
- angular – 属性’json’在’Object’类型上不存在
- webservice中经常有这样的问题 JAXB 2.0 API is being load
- angularjs – 如何将ui-router状态加载到ui-bootstrap选项卡
- bootstrap网格系统使用方法解析
- AngularJS中serivce,factory,provider的区别
- WinForm/服务程序 调用 WebService 出现 无法识别的属性 de
- angular – 使用异步管道从observable读取对象字段
- angular – 为什么使用ViewContainerRef而不是* ngif?
- Linux 中的 Openssl命令及实例代码