angular - 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)}
当订阅create
fn (POST) 时,会返回新的 Todo。
但是当订阅update
fn (PUT) 时,则null
返回。
这是一个错误还是一个功能?
刷新列表 (GET) 时,更新后的 Todo 会按预期出现。
有没有办法让 PUT 也返回更新的 TODO 而不是null
?
解决方案
在这里找到了解决方案: 在 angular-in-memory-web-api 中执行 PUT 或 POST 的正确方法
PUT 默认不返回。
但它可以启用:
HttpClientInMemoryWebApiModule.forRoot(TodosData, { put204: false }),
推荐阅读
- python - 模拟掷 2 个骰子 24 次并在 Python 中计算得到 6 的概率
- python - 如何将所有数组存储在for循环输出中
- node.js - Reactjs 无法正确连接到 Nodejs
- javascript - 由于屏幕分辨率的差异,计算项目的正确位置
- firebase - 未找到 Flutter Firebase.signInWithGoogle 方法
- z3 - Z3 答案不满足约束
- c - 从线程中停止 main
- python - 如何修复“TypeError unsupported operand type(s) for /: 'int' and 'function'”?
- rx-swift - Completable 的 RxSwift 缓存操作符
- apache-spark - 在 Spark 2.4 上的 pyspark.sql.functions.max().over(window) 上使用 .where() 会引发 Java 异常