发出的值作为一个字符串而不是单个值发送

Posted

技术标签:

【中文标题】发出的值作为一个字符串而不是单个值发送【英文标题】:Emitted Values Being Sent as One String Instead of Individual Values 【发布时间】:2017-09-22 20:02:42 【问题描述】:

在我的 Angular 应用程序中,我通过 API 调用返回结果,并允许用户通过一系列复选框选择过滤这些结果。 Right now I'm running into an issue where, while results are returned as expected when one value is sent for a certain filter, when multiple values are selected (like filtering by more than one zipcode, for instance) I get zero results printed to风景。没有错误,只是没有结果。

在摸索了一会儿之后,使用 Chrome devtools 网络选项卡,我终于确定问题在于,而不是在有效负载中将每个项目用引号括起来 - 像这样:“90001”,“90002”,正在发送什么这是:“90001, 90002”。换句话说,引号被包裹起来,就好像它是一个值,而不是两个。

这是代码,我在其中使用“连接”将选定的值放在一起:

this.sendZipcode.emit(this.zipcodeFilters.text = arr.length === 0 ? undefined : arr.join(','));

我不确定如何调整这个“join”的构造方式,或者找到其他解决方案而不是“join”,以便将每个项目用引号括起来,而不是像一个长字符串一样包装。

仅供参考,这是我在选择两个邮政编码后在 Chrome devtools 的网络选项卡中看到的。正如我所解释的,它被包装成一个字符串,而不是两个值:

addresses.zipCode: $in: ["90001, 90002"]

【问题讨论】:

【参考方案1】:

Array.prototype.join 将返回一个字符串。因此,您将数组转换为单个字符串,该字符串作为字符串发送。你想发送一个数组。只需删除join 调用并直接返回arr

字符串:“值,值”

数组:“值”、“值”

【讨论】:

谢谢@ChrisG。我会试试看。 所以,发送这样的东西? this.sendZipcode.emit(this.zipcodeFilters.text = arr.length === 0 ? undefined : arr);

以上是关于发出的值作为一个字符串而不是单个值发送的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 将 NSDictionary 作为单个数组值发送,而不是作为完整对象发送

如何将信号参数作为 int 而不是字符串发出?

XPATH - 获取返回的单个值而不是数组 php

在推文中查找表情符号作为整个集群而不是单个字符

如何使用一个宏的值作为参数传递给另一个宏?

在 tkinter ttk treeview 中格式化单个单元格/项目而不是整行