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>
     





  • 相关阅读:
    asp.net
    Angualr ng-bind-html样式不加载解决办法
    angualr 单页面跳转(仿weui切换动画)
    很多人再找的6位框输入密码 类似于支付时候的输入密码框
    angual+mui 双栏上拉加载,微信里面禁用默认事件可用,可以防止浏览器回弹效果
    单页面跳转添加返回和跳转动画(仿app) 只对单页面和跳转有用,我用的是angualr,有不会的可以私信问我。
    文字前后对齐
    angual+ mui 导航切换实现上拉加载
    ajax监听上传进度
    Echais 点击legend
  • 原文地址:https://www.cnblogs.com/moyuling/p/5207307.html
Copyright © 2011-2022 走看看