Angular-in-memory-web-api PUT returns null

Angular-in-memory-web-api PUT returns 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)}

create fn (POST) 上订阅时,新的待办事项是 returned。

但是当订阅 update fn (PUT) 时,null 是 returned。

这是错误还是功能?

当刷新列表 (GET) 时,更新的待办事项会按预期出现。

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

在这里找到了解决方案: Correct way to do a PUT or POST in angular-in-memory-web-api

默认情况下 PUT 不会 return。

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