惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - oldkingsir

angularjs2 学习笔记(六) Form angularjs2 学习笔记(五) http服务 angularjs2 学习笔记(四) 路由 angularjs2 学习笔记(二) 组件 angularjs2 学习笔记(一) 开发环境搭建 Silverlight中利用MEF进行模块注入时注入错误问题分析 prism中ImportingConstructor构造注入时的参数匹配 解决Prism的EventAggregator的事件订阅错误 解决Prism中Region的GetView不起作用问题 Prism中在Region中注入匹配问题 想找一个专业一点的silverlight开发的群,谁知道啊! 在Prism中利用Region的对ContentControl的自动充填问题 silverlight 学习笔记 (九):Prism与MVVM模式在silverlight中的应用 由csdn搬家来此 silverlight 学习笔记 (八):Prism中MEF的初步认识 silverlight 学习笔记 (七):Prism的第一个应用 vs2010中使用odac for .net的连接配置 Silverlight中对WCF RIA 的异步调用的同步处理解决办法 silverlight 学习笔记导航
angularjs2 学习笔记(三) 服务
oldkingsir · 2016-05-27 · via 博客园 - oldkingsir

在anglar2中服务是什么?

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

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

创建服务

创建一个简单的服务

import {Injectable} from 'angular2/core';

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

@Injectable()

export class PlanetService {

    getPlanets(){

        return Promise.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;

                }

    `]

})

export class PlanetListComponent{

    public planets : Planet[];

    public selectedPlanet = {};

    public onNameClick(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、  创建一个服务的示例

使用promise调用服务