AugularJS从入门到实践(二)

  前  言

 前端 

    AngularJS是为了克服HTML在构建应用上的不足而设计的。(引用百度百科)

本篇学习主要有两个部分:

①【AngularJS 过滤器】
  ②【AngularJS  服务 】
 
          

1、AngularJS 过滤器

【常用指令】
 AngularJS 过滤器:过滤器可以使用一个管道字符(|)添加到表达式和指令中。
         
        
         >>>系统内置过滤器:
        
            currency     格式化数字为货币格式。
            filter     从数组项中选择一个子集。
            lowercase     格式化字符串为小写。
            orderBy     根据某个表达式排列数组。
            uppercase     格式化字符串为大写。

[lowercase、uppercase、currency]

    <body ng-app="app" ng-controller="ctrl">
        <p>{{"aBcDeF"|lowercase}}</p>     // 输出为abcdef
        <p>{{"aBcDeF"|uppercase}}</p>     //输出为ABCDEF
        <p>{{123456|currency}}</p>        //输出为$123,456.00
    </body>

    <script language="JavaScript" src="angular-1.5.6/angular.js"></script>
    <script type="text/javascript">
        angular.module("app",[])
        .controller("ctrl",function($scope){

        })

    </script>    

【filter和orderBy】

    写到这里就不得不说一下angular中的 ng-repeat 指令    

    ng-repeat 指令用于循环输出指定次数的 HTML 元素。

    集合必须是数组或对象。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <link rel="stylesheet" href="libs/bootstrap.css" />
 7     </head>
 8
 9     <body ng-app="app" ng-controller="ctrl">
10
11         <form class="form-horizontal">
12
13         </form>
14         <div class="form-group">
15             <label>请输入筛选信息:</label>
16             <input type="text" ng-model="search" />
17         </div>
18         <table class="table table-bordered">
19             <thead>
20                 <tr>
21                     <th>姓名</th>
22                     <th>年龄</th>
23                     <th>成绩</th>
24                 </tr>
25             </thead>
26             <tr ng-repeat="item in classes| filter:search | orderBy:‘grade‘">
27                 <td>{{item.name}}</td>
28                 <td>{{item.age}}</td>
29                 <td>{{item.grade}}</td>
30             </tr>
31         </table>
32     </body>
33     <script src="libs/angular.js"></script>
34     <script type="text/javascript">
35         var app = angular.module("app",[])
36          .controller("ctrl",function($scope){
37             $scope.classes = [
38                 {name:"张二",age:"22",grade:"88"},
39                 {name:"张三",age:"21",grade:"89"},
40                 {name:"李四",age:"20",grade:"90"},
41                 {name:"李五",age:"21",grade:"91"},
42                 {name:"王大麻子",age:"18",grade:"92"},
43                 {name:"王二麻子",age:"17",grade:"93"}
44               ];
45             })
46
47
48     </script>
49 </html>
2、AngularJS  服务

   
 【服务Service】

   $location:它可以返回当前页面的 URL 地址。
               $http 服务: 服务向服务器发送请求,应用响应服务器传送过来的数据。
               $timeout 服务: JS window.setTimeout 函数。
               $interval 服务:  JS window.setInterval 函数

效果图:

 1     <body ng-app="app" ng-controller="ctrl">
 2         <pre>{{local}}</pre>
 3         <p ng-bind="myHeader"></p>
 4         <p ng-bind="num"></p>
 5         <p>255转为16进制为{{gongneng}}</p>
 6         <p>{{hex}}</p>
 7         <p>{{123|filt}}</p>
 8
 9     </body>
10     <script src="../libs/angular.js"></script>
11     <script>
12
13         angular.module("app",[])
14         .controller("ctrl",function($scope,$location,$timeout,$interval,$hexafy){
15             $scope.local = $location.$$host;
16             $timeout(function () {
17                 $scope.myHeader = "How are you today?";
18             }, 2000);
19             $scope.num = 0;
20             $interval(function(){
21                 $scope.num ++;
22             },1000);
23
24             $scope.gongneng = $hexafy.$$gongneng;
25             $scope.hex = $hexafy.myFunc(255);
26
27         })
28         /*自定义服务*/
29         .service(‘$hexafy‘, function() {
30             this.$$gongneng = "将转入的数字,转为16进制";
31             this.myFunc = function (x) {
32                 return x.toString(16);
33             }
34         })
35         .filter("filt",function(){
36             return function(x){
37                 return x.toString(16);
38             }
39         })
40     </script>

【自定义服务factory】

     factory 是一个函数用于返回值,通常我们使用 factory 函数来计算或返回值。(factory使用上,与service差距不大)

效果图:

 1     <body ng-app="app" ng-controller="ctrl">
 2         <p>
 3             [功能]<br/>
 4             {{gongneng}}
 5         </p>
 6         <p>
 7             255转成16进制为:{{num}}
 8         </p>
 9     </body>
10     <script src="../libs/angular.js"></script>
11     <script>
12
13         angular.module("app",[])
14         .controller("ctrl",function($scope,hexafy){
15             $scope.gongneng = hexafy.gongneng;
16             $scope.num = hexafy.myFunc(255);
17         })
18         .factory(‘hexafy‘,function(){
19             var obj = {
20                 gongneng : "将转入的数字,转为16进制",
21                 myFunc:function(x){
22                     return x.toString(16);
23                 }
24             };
25             return obj;
26         })
27         /*自定义服务*/
28 //        .service(‘hexafy‘, function() {
29 //            this.gongneng = "将转入的数字,转为16进制";
30 //            this.myFunc = function (x) {
31 //                return x.toString(16);
32 //            }
33 //        })
34
35
36     </script>

 【自定义服务provide】

    1、在AngularJS中,Service,factory都是基于provider实现的。
           2、在provider中,通过$get()方法提供了factory的写法,用于返回 value/service/factory。;
           3、provider是三种自定义服务中,唯一可以写进config配置阶段的一种。

效果图:

 1     <body ng-app="app" ng-controller="ctrl">
 2         <p>
 3             [功能]<br/>
 4             {{gongneng}}
 5         </p>
 6         <p>
 7             255转成16进制为:{{num}}
 8         </p>
 9     </body>
10     <script src="../libs/angular.js"></script>
11     <script>
12
13         angular.module("app",[])
14         .controller("ctrl",function($scope,hexafy){
15             $scope.gongneng = hexafy.gongneng;
16             $scope.num = hexafy.myFunc(255);
17         })
18
19         /*定义一个provider服务*/
20         .provider(‘hexafy‘,function(){
21 //            this.gongneng = "将转入的数字,转为16进制";
22             this.$get = function(){
23                 var obj = {
24                     gongneng : "将转入的数字,转为16进制",
25                     myFunc : function(x){
26                         return x.toString(16);
27                     }
28                 }
29                 return obj;
30             }
31         })
32
33 //        .factory(‘hexafy‘,function(){
34 //            var obj = {
35 //                gongneng : "将转入的数字,转为16进制",
36 //                myFunc:function(x){
37 //                    return x.toString(16);
38 //                }
39 //            };
40 //            return obj;
41 //        })
42
43         /*自定义服务*/
44 //        .service(‘hexafy‘, function() {
45 //            this.gongneng = "将转入的数字,转为16进制";
46 //            this.myFunc = function (x) {
47 //                return x.toString(16);
48 //            }
49 //        })
50
51
52     </script>

学习时候的笔记,可能会有一些错误的地方,欢迎各位的批评指点。

反思,复盘,每天收获一点---------------------期待更好的自己

时间: 2024-10-19 22:14:05

AugularJS从入门到实践(二)的相关文章

AugularJS从入门到实践(一)

  前  言  前端    AngularJS是为了克服HTML在构建应用上的不足而设计的.(引用百度百科) AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷.AngularJS通过使用我们称为指令(directives)的结构,让浏览器能够识别新的语法.(引用百度百科) 例如: 使用双大括号{{}}语法进行数据绑定: 使用DOM控制结构来实现迭代或者隐藏DOM片段: 支持表单和表单的验证: 能将逻辑代码关联到相关的DOM元素上: 能将HTML分组成可重用的组件.

【实战】Docker入门实践二:Docker服务基本操作 和 测试Hello World

操作环境 操作系统:CentOS7.2 内存:1GB CPU:2核 Docker服务常用命令 docker服务操作命令如下 service docker start #启动服务 service docker stop  #停止服务 service docker restart #重启服务 service docker status   #查看服务状态 启动Docker服务 docker是一个CS模型,需要先启动服务端,直接执行 sudo service docker start 启动docker

Docker入门教程(二)命令

Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker系列教程的第一篇文章中,我们了解了Docker的基础知识,知道了它是如何工作以及如何安装的.在这篇文章中,我们将学习15个Docker命令,并通过实践来学习它是如何工作的. 首先,让我们通过下面的命令来检查Docker的安装是否正确: docker info  如果没有找到这条命令,则表示Docke

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProperty)只能拥有一个binding. 这一点可以通过设置binding对象的方法名得知: public static BindingExpressionBase SetBinding( DependencyObject target, DependencyProperty dp, BindingB

spring boot 1.5.4 从入门到实践

Spring Boot四个重要核心: 自动配置:针对很多Sping应用程序常见的应用功能,Spring Boot能自动提供相关配置: 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库: 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建(实际开发中,可用性小): Actuator:让你能够深入运行中的SpringBoot应用程序的开发,一探究竟. spring-boot相关项目源码, 码云地址:https://git.o

Nginx反向代理入门到实践

Nginx反向代理入门到实践 Nginx反向代理的作用: 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口.非80端口的映射在访问的时候要域名加上端口,比较麻烦.并且公司入口路由最多只能做20个端口映射.肯定以后不够用. 然后发现可以在内网搭建一个nginx反向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HT

python编程:从入门到实践----第四章&gt;操作列表

一.遍历整个列表 1-1.假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来. # 用for循环来打印魔术师名单中的名字 magicians=['alice','david','carolina'] for magician in magicians: #这里面的magician和magicians是便于让读者得知for循环在哪个列表中进行遍历 print(magician) #输出结果: alice david carolina 解析以上代码: a. 先定义一个列表 b. 定义一个fo

iOS开发-UI 从入门到精通(二)

iOS开发-UI 从入门到精通(二)是对 iOS开发-UI 从入门到精通(一)知识点的巩固,主要以习题练习为主,增强实战经验,为以后做开发打下坚实的基础! ※开发环境和注意事项: 1.前期iOS-UI开发我们需要手动管理内存,所以我们要把ARC关掉(Xcode关掉ARC的步骤): (1)打开Xcode选中当前工程: (2)选中Build Settings: (3)在输入框内输入count: (4)选择Objective-C Automatic Reference Counting  将其设置为 

【Git入门之十二】DIY Git

[Git入门之十二]DIY Git - JackyStudio - 博客频道 - CSDN.NET Git的配置是很有学问的,如果弄懂它,将对你帮助很大. 1.用户配置 这是全局的. ? [cpp]?view plaincopy ? #设置用户名?? $Snbsp;git?config?--global?user.name?"Jacky"?? ?? #设置邮箱?? $Snbsp;[email protected]?? ? 2.设置默认编辑器 在需要输入文本信息时调用,比如之前的reba