1.创建服务:

ng g service my-new-service
创建到指定目录下面
ng g service services/storage

编写storage.service.ts代码:

import { Injectable } from '@angular/core';

@Injectable({
providedIn: 'root'
})
export class StorageService { constructor() { } set(key,value){
localStorage.setItem(key,JSON.stringify(value));
}
get(key){
return JSON.parse(localStorage.getItem(key));
}
remove(key){
localStorage.removeItem(key);
}
}

2.app.module.ts 里面引入创建的服务

import { StorageService } from './services/storage.service';
NgModule 里面的 providers 里面依赖注入服务
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './components/home/home.component';
import { StorageService } from './services/storage.service';
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
FormsModule,
AppRoutingModule
],
providers: [StorageService],
bootstrap: [AppComponent]
})
export class AppModule { }
3.使用的页面引入服务,注册服务
import { Component } from '@angular/core';
import { StorageService } from './services/storage.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
}) export class AppComponent {
constructor(private storage : StorageService){ }
title = 'angulardemo'; key= 1
name='张三';
list:any=[] addData(){
// alert(this.username);
this.list.push(this.name);
this.storage.set('todolist',this.list);
}
removerData(key){
console.log(key);
this.list.splice(key,1);
this.storage.set('todolist',this.list);
}
}

页面设计

<div style="text-align:center">
<h1>
Welcome to {{ title }}!
</h1>
<input [(ngModel)]="name">
<button (click)="addData()">添加数据</button>
<button (click)="removerData(key)">删除数据</button>

效果:


angular中的服务和持久化实现的更多相关文章

  1. angular中的服务

    angular中的服务 angular中的服务相当于一个状态管理,可以将数据放在服务里面进行获取以及编辑. 服务的安装命令: ng g service count 安装好后,会在服务的ts文件中引入一 ...

  2. Angular中的服务的使用

    定义公共的方法,使得方法在组件之间共享调用 1. 创建服务命令 ng g service modbus-service # 创建服务到指定目录下 ng g service services/modbu ...

  3. angular源码分析:angular中的依赖注入式如何实现的

    一.准备 angular的源码一份,我这里使用的是v1.4.7.源码的获取,请参考我另一篇博文:angular源码分析:angular源代码的获取与编译环境安装 二.什么是依赖注入 据我所知,依赖注入 ...

  4. 在 Angular 中实现搜索关键字高亮

    在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...

  5. Angular JS 中的服务注册方法

    在Angular JS中创建服务的几种方法 factory() service() constant() value() provider() factory(name,fn(){}) 该服务为单例的 ...

  6. Angular中怎样创建service服务来实现组件之间调用公共方法

    Angular组件之间不能互相调用方法,但是可以通过创建服务来实现公共方法的调用. 实现 创建服务命令 ng g service 服务路径/服务名 比如这里在app/services目录下创建stor ...

  7. Angular中ngCookies模块介绍

    1.Cookie介绍 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie.内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短 ...

  8. Deferred在jQuery和Angular中的使用与简单实现

    Deferred在jQuery和Angular中的使用与简单实现 Deferred是在jQuery1.5版本中加入的,并且jQuery使用它完全重写了AJax,以前也只是偶尔使用.但是上次在使用Ang ...

  9. angular源码分析:angular中脏活累活的承担者之$interpolate

    一.首先抛出两个问题 问题一:在angular中我们绑定数据最基本的方式是用两个大括号将$scope的变量包裹起来,那么如果想将大括号换成其他什么符号,比如换成[{与}],可不可以呢,如果可以在哪里配 ...

随机推荐

  1. cuda环境搭建

    cuda环境搭建 cuda 的安装 一篇很不错的博客 https://blog.csdn.net/u014529295/article/details/78766258 另外官网也有介绍 https: ...

  2. 《AlwaysRun!团队》第四次作业:项目需求调研与分析

     项目  内容  这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/  这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daiz ...

  3. C++——宏观把控

    跟看所有的书一样,我们都要求第一遍泛读,宏观把控书本内容,C++依旧如此进行.看到前面这几章的时候感觉非常熟悉,因为能让我联想到很多以前学习的VB.C#等的知识,感觉轻松很多,原来我已经学过了很多东西 ...

  4. 如何使用Jmeter批量构造MySQL测试数据

    前言: 当我们进行API测试.Web Service或者其他系统模块测试时,你可能需要从数据库获取并记录数据.这些测试的目的是检查数据库中指定的数据,或者向数据库添加指定的数据,这篇文章会展示使用JM ...

  5. 前端学习笔记--CSS样式--背景和超链接

    1.背景 2.超链接: 举例:

  6. 与C++类的初始化有关---深拷贝,浅拷贝及相关问题

    深浅拷贝 如果之前没有仔细了解深浅拷贝的定义,那么从字面意思上理解,深拷贝大概是地址拷贝,因为它足够”深”嘛,那浅拷贝就是仅仅拷贝值喽,谁叫它那么“浅”,然而生活跟我们开了个巨大的玩笑,这俩意思正好满 ...

  7. DYNAMIC LINK LIBRARY - DLL

    https://www.tenouk.com/ModuleBB.html MODULE BB DYNAMIC LINK LIBRARY - DLL Part 1: STORY What do we h ...

  8. 发布一个在Web下输入密码时提示大写锁定键的Jquery插件

    功能介绍:在Web下输入密码时提示大写锁定键,封装成jq插件方便有需要的同学!使用:$("#txtPWD").capsLockTip();截图预览:代码(2012-05-03 10 ...

  9. markdown 显示图片的三种方式

    插入网络图片 插入本地图片 base64 图片(data:image/png;base64,iVBORw0KG........) ps:base64编码的图片可以通过站长工具编码 https://to ...

  10. theme-sodareload sublime编辑器主题插件还不错,不是语法高亮

    theme-sodareload   sublime编辑器主题还不错,不是语法高亮