• Angular2组件开发—调用服务(一)


    服务 - 封装可复用代码

    在Angular2中,服务用来封装可复用的功能性代码。比如Http服务,封装了ajax请求的细节,在不同的组件中,我们只需要调用Http服务的API接口就可以给组件增加ajax请求的功能了:

    Angular2中实现一个服务非常简单直接 : 定义一个类,然后,它就是服务了:

    1 class EzAlgo{
    2     add(a,b){return a+b;}
    3     sub(a,b){return a-b;}
    4 }

    上面的代码定义了一个相当弱智的算法服务EzAlgo,它有两个API - add()用来计算两个数的和,sub()用来计算两个数的差 。在示例中,组件EzApp依赖于这个服务:

     

     1 <!doctype html>
     2 <html>
     3 <head>
     4     <meta charset="utf-8">
     5     <title>Service</title>
     6     <script type="text/javascript" src="lib/system@0.16.11.js"></script>
     7     <script type="text/javascript" src="lib/angular2.dev.js"></script>
     8     <script type="text/javascript" src="lib/system.config.js"></script>
     9 </head>
    10 <body>
    11     <ez-app></ez-app>
    12     <script type="module">
    13         import {Component,View,bootstrap} from "angular2/angular2";
    14         import {formDirectives} from  "angular2/forms";
    15         
    16         //定义一个简单的算法服务
    17         class EzAlgo{
    18             add(a,b) { return a+b; }
    19             sub(a,b) { return a-b; }
    20         }
    21 
    22         //组件定义
    23         @Component({
    24             selector : "ez-app"
    25         })
    26         @View({
    27             directives:[formDirectives],
    28             template : `
    29                     <form> 
    30                         <input type="text" ng-control="a" [(ng-model)]="a"> 
    31                         -
    32                         <input type="text" ng-control="b" [(ng-model)]="b"> 
    33                         =
    34                         {{sub()}}
    35                     </form>`
    36         })
    37         class EzApp{
    38             constructor(){
    39                 this.a = 37;
    40                 this.b = 128;
    41                 //实例化服务对象
    42                 this.algo = new EzAlgo();
    43             }
    44             add(){
    45                 var a = +this.a,
    46                     b = +this.b;
    47                 return this.algo.add(a,b);
    48             }
    49             sub(){
    50                 var a = +this.a,
    51                     b = +this.b;
    52                 return this.algo.sub(a,b);
    53             }
    54         }
    55         
    56         bootstrap(EzApp);
    57     </script>
    58 </body>
    59 </html>

    输出如下:

  • 相关阅读:
    首尾相连一维数组的最大子数组和
    二柱子——在线答题
    二维数组求最大值
    最大子数组和 10.11作业
    最大子数组

    异常
    面向对象2
    面向对象1
    java数据类型
  • 原文地址:https://www.cnblogs.com/gett/p/5051870.html
Copyright © 2020-2023  润新知