加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular待办事项应用4——模拟web服务

发布时间:2020-12-17 07:04:56 所属栏目:安全 来源:网络整理
导读:内存服务器 angular提供了一个快速建立测试用的web服务方法,内存服务器(in-memory),让我们不用等待后端开发的进度 安装npm包 npm install --save angular-in-memory-web-api 构建数据模型 在todo文件夹创建文件todo-data.ts import { InMemoryDbService

内存服务器

angular提供了一个快速建立测试用的web服务方法,内存服务器(in-memory),让我们不用等待后端开发的进度

安装npm包

npm install --save angular-in-memory-web-api

  

构建数据模型

在todo文件夹创建文件todo-data.ts

import { InMemoryDbService } from "angular-in-memory-web-api";
import { Todo } from "./todo.model";

export class InMemoryTodoDbService implements InMemoryDbService{
    createDb(){
        let todos:Todo[]=[
            {id:‘c24743b1-942e-0527-4810-fa1175b92d90‘,desc:‘hello world‘,completed:false},{id:‘c24743b1-942e-0527-4810-fa1175b92d91‘,desc:‘hello‘,{id:‘c24743b1-942e-0527-4810-fa1175b92d92‘,{id:‘c24743b1-942e-0527-4810-fa1175b92d93‘,desc:‘ world‘,{id:‘c24743b1-942e-0527-4810-fa1175b92d94‘,{id:‘c24743b1-942e-0527-4810-fa1175b92d95‘,{id:‘c24743b1-942e-0527-4810-fa1175b92d96‘,];
        return {todos};
    }
}

  

我们创建了一个InMemoryDbService的内存数据库

?

内存web服务

首先在app.module.ts加入类引用

?

?调用“假的web服务”

修改todo.service.ts

import { Injectable } from ‘@angular/core‘;
import { Todo } from "./todo.model";
import { UUID } from "angular2-uuid";

import { Http,Headers } from "@angular/http";
import ‘rxjs/add/operator/toPromise‘;

@Injectable()
export class TodoService {

  //定义web api地址和headers
  private api_url=‘api/todos‘;
  private headers=new Headers({‘Content-Type‘:‘application/json‘});

  //post /todo
  addTodo(desc:string):Promise<Todo>{
    let todo={
      id:UUID.UUID(),desc:desc,completed:false
    };
    return this.http
              .post(this.api_url,JSON.stringify(todo),{headers:this.headers})
              .toPromise()
              .then(res=>res.json().data as Todo)
              .catch(this.handleError);
              

  }

  //error处理
  private handleError(error:any):Promise<any>{
    console.log(‘an error occurred:‘,error);
    return Promise.reject(error.message||error);
  }

  todos:Todo[]=[];

  constructor(private http:Http) { }

}

  

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读