zoukankan      html  css  js  c++  java
  • 【13】AngularJS 模块

    AngularJS 模块


    模块定义了一个应用程序。(魔芋:也就是说一个ng-app代表一个应用程序,也就是一个模块,module)

    模块是应用程序中不同部分的容器。

    模块是应用控制器的容器。

    控制器通常属于一个模块。


    带有控制器的模块

    应用("myApp") 带有控制器 ("myCtrl"):

     

    1. <!DOCTYPE html>
    2. <html>
    3. <script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
    4. <body>
    5. <div ng-app="myApp" ng-controller="myCtrl">
    6. {{ firstName +" "+ lastName }}
    7. </div>
    8. <script>
    9. var app = angular.module("myApp",[]);
    10. app.controller("myCtrl",function($scope){
    11. $scope.firstName ="John";
    12. $scope.lastName ="Doe";
    13. });
    14. </script>
    15. </body>
    16. </html>
     

    模块和控制器包含在 JS 文件中

    通常 AngularJS 应用程序将模块和控制器包含在 JavaScript 文件中。

    在以下实例中, "myApp.js" 包含了应用模块的定义程序, "myCtrl.js" 文件包含了控制器:

     

    1. <!DOCTYPE html>
    2. <html>
    3. <script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
    4. <body>
    5. <div ng-app="myApp" ng-controller="myCtrl">
    6. {{ firstName +" "+ lastName }}
    7. </div>
    8. <script src="myApp.js"></script>
    9. <script src="myCtrl.js"></script>
    10. </body>
    11. </html>
     

    myApp.js

    1. var app = angular.module("myApp",[]);

     

      在模块定义中 [] 参数用于定义模块的依赖关系。
    中括号[]表示该模块没有依赖,如果有依赖的话会在中括号写上依赖的模块名字。

     

    myCtrl.js

    1. app.controller("myCtrl",function($scope){
    2. $scope.firstName ="John";
    3. $scope.lastName="Doe";
    4. });
     

    函数会影响到全局命名空间

    JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。

    AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。


    什么时候载入库?

    Note 在我们的实例中,所有 AngularJS 库都在 HTML 文档的头部载入。

    对于 HTML 应用程序,通常建议把所有的脚本都放置在 <body> 元素的最底部。

    这会提高网页加载速度,因为 HTML 加载不受制于脚本加载。

    在我们的多个 AngularJS 实例中,您将看到 AngularJS 库是在文档的 <head> 区域被加载。

    在我们的实例中,AngularJS 在 <head> 元素中被加载,因为对 angular.module 的调用只能在库加载完成后才能进行。

    另一个解决方案是在 <body> 元素中加载 AngularJS 库,但是必须放置在您的 AngularJS 脚本前面:

     

    1. <!DOCTYPE html>
    2. <html>
    3. <body>
    4. <div ng-app="myApp" ng-controller="myCtrl">
    5. {{ firstName +" "+ lastName }}
    6. </div>
    7. <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
    8. <script>
    9. var app = angular.module("myApp",[]);
    10. app.controller("myCtrl",function($scope){
    11. $scope.firstName ="John";
    12. $scope.lastName ="Doe";
    13. });
    14. </script>
    15. </body>
    16. </html>
     





  • 相关阅读:
    怎么在java 8的map中使用stream
    在java 8 stream表达式中实现if/else逻辑
    Lambda表达式最佳实践
    java并发Exchanger的使用
    java中functional interface的分类和使用
    java 8 Streams简介
    一篇文章让你彻底弄懂SSL/TLS协议
    基于口令的密码(PBE)
    更加安全的密钥生成方法Diffie-Hellman
    有关密钥的最全总结都在这了
  • 原文地址:https://www.cnblogs.com/moyuling/p/5207307.html
Copyright © 2011-2022 走看看