【发布时间】:2020-04-20 18:46:31
【问题描述】:
我正在使用 jsonfn 构建一个 JSON 对象数组并将它们呈现在 JavaScript 窗口对象上。
[#assign json = []]
[#list articles as article]
[#assign json += [jsonfn.from(article).add("categories", "title", "@name").expand("categories").inline().print()]]
[/#list]
<script>
window.articles = [${json?join(",")}];
</script>
虽然有效,但扩展类别字段 (expand("categories")) 有时包含空值。
{
"categories": [
{
"displayName": "Example Category",
"@name": "example-category"
},
null
],
"title": "Example Article",
"@name": "example-article"
}
这需要我在 JavaScript 中过滤时添加一个 instanceof Object 检查,以免出现空错误。
export const filterArticles = (selectedCategory, articles) => {
return articles.filter((article) => {
return article.categories.find((category) =>
category instanceof Object && category['@name'] === selectedCategory
);
});
};
为什么jsonfn.expand 有时会输出空值?为什么没有空安全检查来避免将它们包含在呈现的输出中?
【问题讨论】:
-
这看起来更像是一个改进请求而不是一个实际问题,请在 Magnolia 问题跟踪系统中创建一个工单。
-
谢谢@Ducaz035。如何访问问题跟踪系统?
-
网址为:jira.magnolia-cms.com如有必要,请随意选择MAGNOLIA作为项目。
标签: magnolia