博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular2.0---服务Service,使用服务进行数据处理
阅读量:4983 次
发布时间:2019-06-12

本文共 2740 字,大约阅读时间需要 9 分钟。

1.创建服务

打开命令窗口,cd到项目目录下,输入  ng g service myData1  回车 创建服务,如下图所示:

这样就成功创建了服务,此时,可以在项目的app文件夹下生成了两个service文件,

2.引入注册服务

服务创建好之后,要先引入注册之后才能用。

首先要在app.module.ts里:

引入     import { MyDataService } from './my-data.service';

注册      providers:[MyDataService];

app.module.ts整体代码如下:
import { NgModule }      from '@angular/core';//引入angular核心模块import { BrowserModule } from '@angular/platform-browser'; //浏览器解析import { FormsModule }   from '@angular/forms'; // <-- NgModel lives here//引入组件import { AppComponent } from './app.component';import { HeaderComponent } from './components/header/header.component';import { NewsComponent } from './components/news/news.component';//1.引入服务  注册服务import { MyDataService } from './my-data.service';@NgModule({  imports: [    //配置模块   /*引入模块   请求数据模块*/    BrowserModule,    FormsModule // <-- import the FormsModule before binding with [(ngModel)]  ],  declarations: [       //声明 注册  组件     所有自定义的组件都要在这里声明    AppComponent,    HeaderComponent,    NewsComponent  ],  providers:[MyDataService],    /*服务  工具*/  bootstrap: [ AppComponent ]   //启动模块  /*加载根组件*/})export class AppModule { }    //暴露跟模块
app.module.ts里引入注册之后,还需要在用到服务的地方引用,我写的demo是在news组件里用到了MyDataService服务,所以就在news.component.ts里引入
//要用服务 1.需要在app.module.ts 引入和注册    2.在使用的地方引入import { MyDataService } from '../../my-data.service';

这样就可以在news.component.ts中使用MyDataService服务了;

3.使用服务

使用服务就是把服务实例化,在news.component.ts中用构造函数来实例化我们定义的服务:

constructor(private  storage:MyDataService) {      console.log(this.storage);      this.news = this.storage.getItem('msgList') || [];  }

这样就可以使用服务了。

我这里写了一个小demo,使用服务实现数据的缓存处理:

html:

{
{newsTitle}}

  • {
    {item}}------

news.component.ts:

import { Component, OnInit } from '@angular/core';//要用服务 1.需要在app.module.ts 引入和注册    2.在使用的地方引入import { MyDataService } from '../../my-data.service';@Component({  selector: 'app-news',  templateUrl: './news.component.html',  styleUrls: ['./news.component.css']})export class NewsComponent implements OnInit {  public news = [];  public newsTitle = '填写个人信息,添加到列表';  public currentMsg;  constructor(private  storage:MyDataService) {      this.news = this.storage.getItem('msgList') || [];  }  ngOnInit() {  }  addList() {    this.news.push(this.currentMsg);    this.storage.setItem('msgList',this.news);  }  delete(i){    this.news.splice(i,1);    this.storage.setItem('msgList',this.news);  }}

my-data1.sevice.ts:

import { Injectable } from '@angular/core';@Injectable()export class MyDataService {  constructor() { }  setItem(key,value){    localStorage.setItem(key,JSON.stringify(value));  }  getItem(key){    return JSON.parse(localStorage.getItem(key));  }  removeItem(key){    localStorage.removeItem(key);  }}

 

 

 

转载于:https://www.cnblogs.com/SPHmomo/p/8179529.html

你可能感兴趣的文章
Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)
查看>>
Gym - 101252H
查看>>
2019年2月15日,复习
查看>>
线性布局Row和Column
查看>>
关键路径(代码讲解)- 数据结构和算法68
查看>>
if语句三种格式
查看>>
CentOS 7 单用户模式修改root密码
查看>>
Linux DHCP原理
查看>>
Thread.currentThread()和this的区别——《Java多线程编程核心技术》
查看>>
mysql 5.1 Data 文件夹路径
查看>>
delegate的参数也可泛型【简单源码示例】
查看>>
Mycat SqlServer 技术栈 实现 主从分离
查看>>
为何要学编程?如何学编程?用什么语言最好?有什么好书?
查看>>
剑指Offer的学习笔记(C#篇)-- 反转链表
查看>>
百度star2012初赛第一场的题目
查看>>
武汉第二十七天
查看>>
最长公共子序列
查看>>
MFC 鼠标去留
查看>>
【原创】关于oracle11G空表无法导出问题的解决方法
查看>>
16进制的简单运算
查看>>