Angular—商品在线竞拍项目中商品搜索功能,参数加不到请求的URL地址后面的解决方法
发布日期:2021-06-29 11:16:08 浏览次数:2 分类:技术文章

本文共 917 字,大约阅读时间需要 3 分钟。

在这里插入图片描述

商品搜索功能的要求是:在左边的搜索表单中,添加相应的条件,点击搜索,右边轮播图下面就会出现对应的商品。可是当我跟着老师敲完时,却出现不了这样的效果,控制台也没有报错。代码如下图:
在这里插入图片描述
正确的情况应该是在请求的URL地址后面加上相应的参数,这样才会出现对应的商品。正确的情况如下图:
在这里插入图片描述
可是我的请求中,URL地址后面没有参数,如下图:
在这里插入图片描述
知道了是这个原因之后,就想知道为什么参数没有加到URL地址的后面,经过调试,发现 URLSearchParams 对象中没有数据,也就是 append 方法没有起作用。而且发现报了异常,这个异常不是在控制台中,隐藏的略深:
在这里插入图片描述
完整的异常信息是这样的:TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
通过上网查,知道在 Es5 的严格模式中,已经不允许像老师那样写代码了,也就是调用参数的方法。

解决方法

通过查看 search 参数的类型,不仅仅是 URLSearchParams,还可以是字符串和对象。

在这里插入图片描述
所以,我就采用了返回一个对象,而不是返回 URLSearchParams 这个类型的方法解决了:

private encodeParams(params: ProductSearchParams): {
} {
const result: {
} = {
}; const urlParams = Object.keys(params).filter(key => params[key]); urlParams.forEach(element => {
result[element] = params[element]; }); return result; }

将 encodeParams 方法改为上面那样,参数就可以加到URL地址的后面了,商品搜索的功能也就可以使用了。

转载地址:https://blog.csdn.net/zwj_jyzl/article/details/90383051 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:自考总结(五)
下一篇:Angular—模板式表单和响应式表单

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月16日 18时53分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章