Angular2 服务

Angular2 服务

在anglar2中服务是什么?

如果在项目中有一段代码是很多组件都要使用的,那么最好的方式就是把它做成服务。

服务是一种在组件中共享功能的机制,当我们使用标签将多个组件组合在一起时我们需要操作一些数据或是需要做一些运算时,我们需要做一个服务;服务能帮我们引入外部的数据。那么如何创建一个服务呢?

创建服务

创建一个简单的服务

import{Injectable}from'angular2/core';

import{PLANETS}from'./planets-data';

@Injectable()

exportclassPlanetService {

getPlanets(){

returnPromise.resolve(PLANETS);

}

}

首先需要一个Injectable的指令,这个指令能告诉其他引用的组件这个服务是可注入的。

然后定义一个方法用来返回数据。

服务调用

服务调用也很简单

import{Component}from"angular2/core";

import{PlanetService}from"./planet.service";//1

import{PlanetComponent}from"./planet.component";

import{Planet}from"./planet";

@Component({

selector:"my-app",

templateUrl:"app/planet-list.component.html",

directives:[PlanetComponent],

providers:[PlanetService],//2

styles:[`

body{

padding:0;

margin:0;

font-family:Roboto,Arial,sans-serif;

font-size:16px

}

.title {

color:#018EFA;

}

.clicked{

background-color:#9C00FE;

color:white;

}

.labels{

background-color:black;

color:white;

}

`]

})

exportclassPlanetListComponent{

publicplanets :Planet[];

publicselectedPlanet ={};

publiconNameClick(planet){

this.selectedPlanet =planet;

}

constructor(private_planetService:PlanetService){ // 3

this.getPlanets();

}

// make a call to our planet service

getPlanets(){ //4

this._planetService.getPlanets().then((planets:Planet[])=>this.planets=planets);

}

}

1、 引入服务(import)

2、 使用providers来注入服务

3、 创建一个服务的示例

4、 使用promise调用服务

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...