700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Angular—商品竞拍项目中商品搜索功能 参数加不到请求的URL地址后面的解决方法

Angular—商品竞拍项目中商品搜索功能 参数加不到请求的URL地址后面的解决方法

时间:2019-07-30 04:26:20

相关推荐

Angular—商品竞拍项目中商品搜索功能 参数加不到请求的URL地址后面的解决方法

商品搜索功能的要求是:在左边的搜索表单中,添加相应的条件,点击搜索,右边轮播图下面就会出现对应的商品。可是当我跟着老师敲完时,却出现不了这样的效果,控制台也没有报错。代码如下图:

正确的情况应该是在请求的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地址的后面了,商品搜索的功能也就可以使用了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。