gpt4 book ai didi

javascript - 为什么 $httpBackend 不填充参数

转载 作者:行者123 更新时间:2023-11-30 00:18:10 24 4
gpt4 key购买 nike

我有一个 $resource 用于处理实体的 crud http 请求。它包含在我的自定义服务中,目前不添加任何功能,所以不要介意它 - 它只是旧的普通 $resource:

app.factory('coursesService', ['$resource', coursesService]);

function coursesService($resource) {
return $resource('/api/courses/:id', {
id: '@id'
}, {
update: {
method: 'PUT'
}
});

因此,我正在尝试删除 Controller 中的一个实例(存储在 Controller 对象的 courseToDelete 属性中):

this.courseToDelete.$remove()

我正在使用来自 ngMockE2E 模块的 $httpBackend 服务模拟后端:

$httpBackend.whenDELETE(/api\/courses\/(.+)/, undefined, undefined, ['id'])
.respond(function(method, url, data, headers, params) {
clientStorage.deleteCourse(params.id);
return [200, {}];
});

所以当 $resource 发送 DELETE http 请求时,我希望能够从我的本地存储中删除它(因为我没有后端,数据作为序列化的 JSON 字符串存储在本地存储中)

我要删除的对象:

 {
id: 1,
name: 'Course 1',
duration: 380,
description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.' +
' Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' +
' Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur' +
' sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',
created: new Date(2011,10,30),
authors: [
'Пушкин', 'Лермонтов'
]
}

来自docs我预计我的 params 参数将具有 id 属性,但是当函数执行时 params 是未定义的,尽管所有其他参数看起来都很好。我在这里做错了什么? enter image description here

最佳答案

来自 Angular $httpBackend 文档。

whenDELETE(url, [headers], [keys])

但是你正在使用 whenDELETE(url, undefined, undefined, [keys])

所以你的 keys 参数是未定义的,没有任何东西作为参数传递。

更新:请注意,此功能未在 1.4.8 及更早版本中实现

关于javascript - 为什么 $httpBackend 不填充参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com