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 相关文章推荐
js 操作css实现代码
Jun 11 Javascript
Javascript 获取链接(url)参数的方法[正则与截取字符串]
Feb 09 Javascript
javascript设计模式之工厂模式示例讲解
Mar 04 Javascript
Javascript验证用户输入URL地址是否为空及格式是否正确
Oct 09 Javascript
详解JavaScript中的forEach()方法的使用
Jun 08 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JS实现的多张图片轮流播放幻灯片效果
Jul 22 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 Javascript
微信小程序中进行地图导航功能的实现方法
Jun 29 Javascript
ant-design-vue 实现表格内部字段验证功能
Dec 16 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
Yii中render和renderPartial的区别
2014/09/03 PHP
PHP7 新增常量
2021/03/09 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
jQuery基于muipicker实现仿ios时间选择
2016/02/22 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
前端vue如何使用高德地图
2020/11/05 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
Python中请使用isinstance()判断变量类型
2014/08/25 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
python flask中静态文件的管理方法
2018/03/20 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Python守护进程实现过程详解
2020/02/10 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
Python APScheduler执行使用方法详解
2020/12/10 Python
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
教学个人的自我评价分享
2014/02/16 职场文书
中华魂演讲稿
2014/05/13 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python