zoukankan      html  css  js  c++  java
  • angularjs自动加载和手动加载

    (一)自动加载

    ng-app是angular的一个指令,代表一个angular应用(也叫模块)。使用ng-app或ng-app=""来标记一个DOM结点,让框架会自动加载。也就是说,ng-app是可以带属性值的。如果想要实现自动加载,那么就不能让ng-app带有属性值。

    <html>
        <body ng-app>
            <div>div1:{{1+3*2}}</div>
            <script src="angular.js"></script>
        </body>
    </html>
    <!doctype html>
    
    <html xmlns:ng="http://angularjs.org" ng-app>
    
    <body>
    
    ...
    
    <script src="angular.js">
    
    </body>
    
    </html

    利用ngapp标示你需要自动引导应用程序的根节点,一般典型为html tag。在DOMContentLoaded事件触发Angular会自动寻找ngapp作为应用的根节点,如果找到则会进行如下操作:

    1. 加载module(模块)相关directive(指令)。
    2. 创建应用程序injector(Angular的注入机制).
    3. 编译处理ng-app作为根节点的指令。这里允许你自定义选择DOM节点作为应用根节点。

    自动加载条件:
    1、不含ng-app,无法自动加载,这个比较好理解。

    <html>
        <body>
            <div>div1:{{1+3*2}}</div>
            <script src="angular.js"></script>
        </body>
    </html>

    2、含有2个ng-app,那么只会自动加载第一个,这个也好理解。

    <html>
        <body>
            <div ng-app>div1:{{1+3*2}}</div>
            <div ng-app>div2:{{1+3*2}}</div>
            <script src="angular.js"></script>
        </body>
    </html>

    3、ng-app带有属性,不能自动加载

    <html>
    	<body>
    		<div ng-app="app1">div1:{{1+3*2}}</div>
    		<script src="angular.js"></script>
    	</body>
    </html>

    4、不带属性的在前,带属性的在后。ng-app标记的模块可以自动加载

    <html>
    	<body>
    		<div ng-app>div1:{{1+3*2}}</div>
    		<div ng-app="app1">div1:{{1+3*2}}</div>
    		<script src="angular.js"></script>
    	</body>
    </html>

    5、带属性的在前,不带属性的在后。ng-app标记的模块不能自动加载

    <html>
    	<body>
    		<div ng-app="app1">div1:{{1+3*2}}</div>
    		<div ng-app>div1:{{1+3*2}}</div>
    		<script src="angular.js"></script>
    	</body>
    </html>

    (二)手动加载
      如果想对对初始化有更多的控制权,可以采用自定义手动引导方法初始化代替angular的自动初始化。比如你需要在angular编译模板之前做一些事情,比如改变模板某些内容。手动引导方式将会如下:
     
    <!doctype html>
    
    <html xmlns:ng="http://angularjs.org">
    
    <body>
    
    Hello {{'World'}}!
    
    <script src="http://code.angularjs.org/angular.js"></script>
    
    <script>
    
    angular.element(document).ready(function() {
    
    angular.bootstrap(document);
    
    });
    
    </script>
    
    </body>
    
    </html>


  • 相关阅读:
    不用循如何计算数组累加和
    mysql通过binlog恢复删除数据
    windows下打开binlog
    mysql的binlog
    枚举实现线程池单例
    AtomicInteger的CAS算法浅析
    不用循环如何计算1累加到100
    MongoDB查询报错:class com.mongodb.MongoSecurityException: Exception authenticating MongoCredential
    Senparc.Weixin微信开发(3) 自定义菜单与获取用户组
    Senparc.Weixin微信开发(2) 消息机制和上下文(Session)
  • 原文地址:https://www.cnblogs.com/yinliang/p/4761457.html
Copyright © 2011-2022 走看看