首页 > 解决方案 > Angular-in-memory-web-api PUT 返回 null

问题描述

我为todos创建了这个基本数据服务:

import { InMemoryDbService } from 'angular-in-memory-web-api';
import { Todo } from './todos.service';

export class TodosData implements InMemoryDbService {

createDb() {
    const todos: Todo[] = [
        {
            id: 1,
            title: 'TODO 1',
        }
    ];
    return { todos };
}

}

以下是服务的使用方式:

const apiUrl = 'api/todos/'

// CREATE
create(todo: Todo){return this.http.post<Todo>(apiUrl, {...todo, id: null})}

// UPDATE
update(todo: Todo){return this.http.put<Todo>(apiUrl + todo.id, todo)}

当订阅createfn (POST) 时,会返回新的 Todo。

但是当订阅updatefn (PUT) 时,则null返回。

这是一个错误还是一个功能?

刷新列表 (GET) 时,更新后的 Todo 会按预期出现。

有没有办法让 PUT 也返回更新的 TODO 而不是null

标签: angularrestangular-in-memory-web-api

解决方案


在这里找到了解决方案: 在 angular-in-memory-web-api 中执行 PUT 或 POST 的正确方法

PUT 默认不返回。

但它可以启用: HttpClientInMemoryWebApiModule.forRoot(TodosData, { put204: false }),


推荐阅读