博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AngularJs学习笔记--bootstrap
阅读量:7074 次
发布时间:2019-06-28

本文共 1985 字,大约阅读时间需要 6 分钟。

hot3.png

一、总括

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

二、Angular <script> 标签

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

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

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

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

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

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

三、自动初始化

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

  • 加载与module相关的directive

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

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

    
    
Bootstrap-auto    
        .ng-cloak {            display: none;        }        这里是ng-app外面的~~{
{1+2}}    
这里是ng-app里面~~~{
{1+3*2}}    

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

四、手工初始化

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

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

    
    
Bootstrap-manual    
        .ng-cloak {            display: none;        }        这里是ng-app外面的~~{
{1+2}}    
这里是ng-app里面~~~{
{1+3*2}}    
    
        angular.element(document).ready(function() {            angular.bootstrap(angular.element(document.getElementById("rootOfApp")));        });    

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

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

2. 调用angular.bootstrap,让angular去将模版编译为一个可执行的,双向绑定的应用!这里的angular.bootstrap(element,[ modules])是一个编译命令,[modules]貌似不用写,这个问题随后会更新

转载于:https://my.oschina.net/fuckBAT/blog/375579

你可能感兴趣的文章
SQL Server vs Oracle 简单语法比较
查看>>
javascript 生成一个指定大小的居中div层
查看>>
Jedis cluster集群初始化源码剖析
查看>>
Linux iostat命令详解
查看>>
Java中的并发工具
查看>>
混合的方式开启服务
查看>>
C库数学函数
查看>>
vlan划分及vlan间通信
查看>>
软件管理
查看>>
Java学习之神奇的i=i++
查看>>
java设置代理的几种方式
查看>>
面向对象设计原则详解:里氏替换原则
查看>>
各种云安装RouterOS脚本
查看>>
解决TP-LINK无线网卡在debian上无法识别的问题
查看>>
MySQL数据库备份的10个教程
查看>>
DR模型集群概述
查看>>
66哲理,哪一句让你茅塞顿开
查看>>
啊速度发说法
查看>>
二手笔记本测试软件
查看>>
ios5之ipad开发之分割试图与弹出层的使用
查看>>