• angular与require构建项目


          

    1.angular模块化

    angular可以把代码分成若干模块,然后一个模块可以依赖在模块,使用子模块的功能。被依赖的模块需要在本模块之前被加载。如下所示,app模块依赖Module1和Module2模块。

    var app = angular.module("app",[Module1,Module2]);

    2.require

    能够使应用异步按需加载模块,管理模块的依赖性。子模块加载完成后,本模块再加载,并且子模块的加载是异步的。

    3.angular与require构建项目

    使用angular开发单页面应用时,需要预先加载应用所需的所有子模块。

    使用angular与require共同构建项目,可以实现模块加载,提高网页响应速度。把子功能分别写到子angular模块中,  当某个html页需要依赖某个或某几个模块时,使用require异步加载需要的子模块,子模块加载后,与网页对应的js文件加载,并手动启动anugular。

    以下面的代码为例,一个展示用户列表的html页,在文件下面指定加载user.js文件,html与user.js依赖Paging.js和name_Filter.js文件。paging.js和name_filter.js文件加载完后再加载user.js,最后启动angular。paging.js包含一个分页自定义指令,name_filter.js包含有名字过滤器。

    <html>
         <head>
         </head>
         <body>
            <div ng-controller="UserCtr">
                 <ul>
                        <li ng-repeat="item in users">
                           name:<span ng-bind="id | nameFilter"></span>
                           age:<span ng-bind="item.age"></span>
                        </li>
                   </ul>
                   <paging num="10">
                   </paging>
            </div>
         </body>
         <script src="/user.js"></script>
    </html>
    /*
    *user.js
    */
    require(['/name_filter','/paging'],function(){
        var app = angular.module("User",['NameFilter','ngPage']);
        app.controller('UserCtrl',[$scope,function($scope){
              $scope.users = [{id:1,age:20},{id:2,age:25},{id:3,age:35}]
              ....
        }]
    });
    
    //启动angular
    angular.bootstrap(document,[“User”]); 
    /*
    *paging.js
    */
    define(["angular"], function(angular){
          var page = angular.module("ngPage",[]);
    
          page.directive("paging",function(){
               return{
                   restrict:"AE",
                   scope:{
                            load:"&",
                             num:"@",
                             ...
                         },
                   templateUrl:/paging.html,
                   link:function(scope,element,attrs){
                       ...
                   }
                }
         });
    })
    /*
    *name_filter.js
    */
    define(["angular"],function(angular){
        var app= angular.module("NameFilter",[]);
        app.filter("getName",function(){
              var users={1:Lily,2:Lucy,3.Rose}        
                              
              return function(id){
                 return users(id);
              }
        });
    });
  • 相关阅读:
    CentOS7中使用yum安装Nginx的方法
    Flask&&人工智能AI --4
    Flask&&人工智能AI --3
    Flask&&人工智能AI --2
    Flask&&人工智能AI --1
    Linux--8
    Linux--7
    django 请求生命周期
    Linux--6 redis订阅发布、持久化、集群cluster、nginx入门
    Node.js Addons翻译(C/C++扩展)
  • 原文地址:https://www.cnblogs.com/fe-huahai/p/5620833.html
Copyright © 2020-2023  润新知