AngularJs bootstrap详解及示例代码


Posted in Javascript onSeptember 01, 2016

AngularJs学习笔记系列第一篇,希望我可以坚持写下去。本文内容主要来自 http://docs.angularjs.org/guide/ 文档的内容,但也加入些许自己的理解与尝试结果。

一、总括

本文用于解释Angular初始化的过程,以及如何在你有需要的时候对Angular进行手工初始化。

二、Angular <script> 标签

本例用于展示如何通过推荐的路径整合Angular,实现自动初始化。

<!doctype html>

 <html xmlns:ng="http://angularjs.org" ng-app>

 <body>

 ...

 <script src="angular.js">

 </body>

 </html>

将sciprt标签放置于页面底部。这样做能避免因为加载angular.js而阻挡HTML的加载,从而降低应用的加载时间。我们可以在http://code.angularjs.org中获取到最新版本的angularJs。出于安全考虑,切勿在产品中直接引用这个地址来加载脚本。但如果仅仅是研究学习使用的话,直接连接也无妨。

选择:angular-[version].js 是方便阅读的一个版本,适合日常开发、调试使用。

选择:angular-[version].min.js 是压缩、混淆后的版本,适合最终产品使用。

放置”ng-app”到应用的根节点中,如果你想让angular自动启动你的应用,通常可以放置于<html>标签中。

<html ng-app>

如果我们需要使用老派风格的directive语法”ng:”,那么我们需要加入一个xml-namespace到html标签中以“取悦”IE。(这个是一个历史原因,我们也不推荐使用ng:)

<html xmlns:ng="http://angularjs.org">

三、自动初始化

Angular会在DOMContentLoaded事件中自动初始化,Angular会找出由你通过ng-app这个directive指定的应用根节点。如果找到,Angular会做以下事情:

加载与module相关的directive。

创建应用相关的injector(依赖管理器)。

以ng-app指定根节点,开始对DOM进行相关“编译”工作。换言之,可以将页面的其中一部分(非<html>)作为根节点,从而限制angular的作用范围。

<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>Bootstrap-auto</title>
 <style type="text/css">
  .ng-cloak {
   display: none;
  }
 </style>
</head>
<body>
 这里是ng-app外面的~~{{1+2}}
 <div ng-app class="ng-cloak">这里是ng-app里面~~~{{1+3*2}}</div>
 <script src="../angular-1.0.1.js" type="text/javascript"></script>
</body>
</html>

      注:里面的”ng-cloak”,这个是用于在angular.js编译完成之前(对!没错!是编译完成之前,不是angularjs加载完成之前。所以,如果想很好地避免这个情况,最好的办法是优化应用的加载流程,或者结合css对未编译的模版进行处理。而由于那万恶的ie6、7不支持属性选择器,所以最好使用class=”ng-cloak”的方式。编译完成后,这个class或属性会被删除。)隐藏模版,避免在页面显示原模版。

四、手工初始化

如果我们想进一步控制初始化进程(例如你需要通过script loader加载angular.js或者在angular编译页面前做一些操作),那么我们可以用一个手工调用的启动方法去代替。

以下例子等同于使用ng-app这个directive:

<!DOCTYPE HTML>
<html lang="zh-cn">
<head>
 <meta charset="UTF-8">
 <title>Bootstrap-manual</title>
 <style type="text/css">
  .ng-cloak {
   display: none;
  }
 </style>
</head>
<body>
 这里是ng-app外面的~~{{1+2}}
 <div id="rootOfApp" class="ng-cloak">这里是ng-app里面~~~{{1+3*2}}</div>
 <script src="../angular-1.0.1.js" type="text/javascript"></script>
 <script type="text/javascript">
  angular.element(document).ready(function() {
   angular.bootstrap(angular.element(document.getElementById("rootOfApp")));
  });
 </script>
</body>
</html>

就是说,我们的代码可以按照以下步骤编写:

1. 在页面和其他代码加载完成后,找到应用模版的根节点;

2. 调用angular.bootstrap,让angular去将模版编译为一个可执行的,双向绑定的应用!

 后续继续补充相关文章,谢谢大家对本站的支持!

              相关文章:

                                 AngularJs bootstrap搭载前台框架——js控制部分
                                
AngularJs bootstrap搭载前台框架——基础页面
                                 
AngularJs bootstrap搭载前台框架——准备工作
                                
AngularJs bootstrap详解及示例代码

Javascript 相关文章推荐
jQuery+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
JavaScript 注册事件代码
Jan 27 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
js变量、作用域及内存详解
Sep 23 Javascript
JavaScript将一个数组插入到另一个数组的方法
Mar 19 Javascript
JavaScript中的pow()方法使用详解
Jun 15 Javascript
BootStrap selectpicker
Jun 20 Javascript
Angular中响应式表单的三种更新值方法详析
Aug 22 Javascript
详解react服务端渲染(同构)的方法
Sep 21 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 Javascript
Node.js文本文件BOM头的去除方法
Nov 22 Javascript
JavaScript数据类型学习笔记分享
Sep 01 #Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 #Javascript
纯js和css完成贪吃蛇小游戏demo
Sep 01 #Javascript
在web中js实现类似excel的表格控件
Sep 01 #Javascript
Javascript点击按钮随机改变数字与其颜色
Sep 01 #Javascript
AngularJs 指令详解及示例代码
Sep 01 #Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
Sep 01 #Javascript
You might like
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
php注销代码(session注销)
2012/05/31 PHP
php实现水仙花数示例分享
2014/04/03 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
2016/10/18 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
浅谈webpack 自动刷新与解析
2018/04/09 Javascript
Vue实现表格批量审核功能实例代码
2019/05/28 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
vue 项目软键盘回车触发搜索事件
2020/09/09 Javascript
Python中使用PDB库调试程序
2015/04/05 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
物流经理自我评价
2013/09/23 职场文书
2014两会学习心得:时代的发展
2014/03/17 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
员工担保书范本
2015/09/22 职场文书
 Redis 串行生成顺序编码的方法实现
2022/04/03 Redis
vue的项目如何打包上线
2022/04/13 Vue.js