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 }),
我为 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 }),