现在,当我尝试使用模拟数据桶中的
dataraw
获取数据时,我得到了一个 [object Object] 数组。
data
正在工作,但它与 oneOf
等数组助手不兼容。
oneOf 将返回
[object Object]
和 'dataRaw' 以及 null
和 'data'
如何获取实际值?
这是我的文件和数据存储桶:
[
{
"publicId": "{{guid}}",
"title": "School"
},
{
"publicId": "{{guid}}",
"title": "Shopcenter"
},
{
"publicId": "{{guid}}",
"title": "Highway"
},
{
"publicId": "{{guid}}",
"title": "Home"
}
]
[
{{# repeat 50}}
{
"publicId": "{{guid}}",
"title": "{{lorem 3}}",
"street":"{{street}}",
"city": "{{city}}",
"country":"{{country}} ({{countryCode}})",
"zipcode":"{{zipcode}}",
"postcode":"{{postcode}}",
"lat":"{{lat}}",
"long":"{{long}}",
"type": {{oneOf (dataRaw 'addressetypes')}}
}
{{/repeat}}
]
模拟版: 3.1.0
操作系统/操作系统版本: Ubuntu 22.04.2 LTS
这很烦人,但并不是真正的错误。 oneOf 正确地获取了数据桶数组中的对象,但是 Handlebars 默认情况下对所有内容进行字符串化,因此我们收到 [object Object],这是表示对象的 JS 方式。
您可以通过对结果进行字符串化并避免使用三重花括号进行字符转义来规避此问题:
{{{stringify (oneOf (dataRaw '...'))}}}
我知道这并不理想。我将向 oneOf 添加一个 stringify 标志,以便它输出字符串化的内容,我们可以避免直接使用 stringify + 三卷曲。
这确实是一个问题,但通过向
oneOf
方法添加第二个参数解决了这个问题,现在效果很好;第二个参数是一个布尔值,本质上是为您执行“字符串化”,因此您不必使用该助手。现在代码应该是这样的:
{{oneOf (dataRaw '<bucketName or Id>') true}}
链接到具有相同讨论的 GitHub 线程:https://github.com/mockoon/mockoon/issues/1074
链接到
oneOf
文档:https://mockoon.com/docs/latest/templatating/mockoon-helpers/#oneof